的列索引的列是相同colModel
陣列在塔的所述的jqGrid初始化(它是一樣的,在輸入參數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叉簡化了從列名獲取列索引,因爲它的內部保存着參數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"
。