jquery-plugins
  • jqgrid
  • 2011-02-04 230 views 4 likes 
    4

    我试图通过列名访问自定义格式化函数中的rowObject,但它没有给出任何值。我已经用JSON和XML数据类型尝试了这一点。有没有办法让jqgrid列名按列名

    有没有什么办法在jqgrid中按列名得到列号。

    function Draw_Link (cellvalue , options , rowObject) 
    { 
        return "<a href='someurl.php?col_name="+rowobject.col_name+"'>"+cellvalue+"</a>"; 
    } 
    

    回答

    10

    的列索引的列是相同colModel阵列在塔的所述的jqGrid初始化(它是一样的,在输入参数colModel)之前的索引。如果使用rownumbers:true,multiselect:truesubGrid:true其他列将作为第一行添加到网格,所以在colModel数组中作为jqGrid参数的列索引可以是网格初始化之后的其他列。您可以使用例如这个简单的函数来获得指标

    var getColumnSrcIndexByName = function(grid,columnName) { 
        var cm = grid.jqGrid('getGridParam','colModel'), 
         i=0, index=0, l=cm.length, cmName; 
        while (i<l) { 
         cmName = cm[i].name; 
         i++; 
         if (cmName===columnName) { 
          return index; 
         } else if (cmName!=='rn' && cmName!=='cb' && cmName!=='subgrid') { 
          index++; 
         } 
        } 
        return -1; 
    }; 
    var index = getColumnSrcIndexByName($("#list"),'MyColumn'); 
    

    更新:Free jqGrid叉简化了从列名获取列索引,因为它的内部保存着参数iColByName,这是由上图列名。人们可以通过

    var iColByName = $("#list").jqGrid("getGridParam", "iColByName"); 
    

    iColByName["MyColumn"]刚刚获得iColByName将所需的列索引(iCol)。我提醒的是,可以使用getGridParam不带任何参数,以获得参考jqGrid的所有参数:

    var p = $("#list").jqGrid("getGridParam"); 
    

    var iCol = p.iColByName["MyColumn"]; 
    

    将列索引和p.colModel[iCol].name"MyColumn"

    相关问题