有没有办法在jqgrid中按列名获取列号

时间:2011-02-04 07:43:06

标签: jquery-plugins jqgrid

我尝试按列名访问自定义格式化程序函数中的rowObject,但它没有给出任何值。我已尝试使用JSON和XML数据类型。

有没有办法在jqgrid中按列名获取列号。

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

1 个答案:

答案 0 :(得分:11)

列的列索引与jqGrid初始化之前colModel数组之前的列的索引相同(它与输入参数{{1中的相同) }})。如果您使用colModelrownumbers:truemultiselect:true其他列将作为第一行添加到网格中,因此将subGrid:true数组中的列索引作为jqGrid参数可以是网格初始化后的其他参数。您可以使用例如这个简单函数来获取索引

colModel

更新: Free jqGrid fork简化了从列名获取列索引,因为它在内部保存参数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'); ,这是列名称的映射。可以通过

获取iColByName
iColByName

var iColByName = $("#list").jqGrid("getGridParam", "iColByName"); 将是必需的列索引(iColByName["MyColumn"])。我提醒一个人可以使用iCol而不使用任何参数来获取对jqGrid的所有参数的引用:

getGridParam

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

将是列索引,var iCol = p.iColByName["MyColumn"]; 将是p.colModel[iCol].name