我试图通过列名访问自定义格式化程序函数中的 rowObject,但它没有给出任何值。我已经用 JSON 和 XML 数据类型尝试过这个。
有什么办法可以通过jqgrid中的列名获取列号。
function Draw_Link ( cellvalue , options , rowObject )
{
return "<a href='someurl.php?col_name="+rowobject.col_name+"'>"+cellvalue+"</a>";
}
最佳答案
该列的列索引与 之前的 colModel
数组 中的列索引相同(与输入参数 colModel
中的相同)。如果使用 rownumbers:true
, multiselect:true
或 subGrid: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 fork 简化了从列名获取列索引的过程,因为它在内部保存了参数 iColByName
,它是列名的映射。可以通过以下方式获取 iColByName
var iColByName = $("#list").jqGrid("getGridParam", "iColByName");
iColByName["MyColumn"]
将是所需的列索引( iCol
)。提醒一下,可以使用不带任何参数的getGridParam
来获取jqGrid所有参数的引用:var p = $("#list").jqGrid("getGridParam");
值(value)var iCol = p.iColByName["MyColumn"];
将是列索引, p.colModel[iCol].name
将是 "MyColumn"
。
关于jquery-plugins - 有没有办法在jqgrid中通过列名获取列号,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4895647/