中使用的索引remapColumns
方法与中相同colModel
大批。重要的是要理解,索引可以不同,如colModel
最初使用的jqGrid参数。如果jqGrid使用选项rownumbers: true
带有名称的附加列'rn'
将被插入到第一个位置colModel
大批。所有其他元素的索引colModel
数组将递增。以同样的方式选择multiselect: true
插入列'cb'
abd 选项subGrid: true
插入列'subgrid'
。以同样的方式选择treeGrid: true
接下来是附加colModel
具有一些附加隐藏列的数组,其名称可以通过以下方式定义treeReader
。在以下情况下的默认列名称treeGridModel: 'nested'
are: 'level'
, 'lft'
, 'rgt'
, 'isLeaf'
, 'expanded'
, 'loaded'
and 'icon'
or 'level'
, 'parent'
, 'isLeaf'
, 'expanded'
, 'loaded'
and 'icon'
的情况下treeGridModel: 'adjacency'
.
因此,要按名称查找列的索引,您应该只获取当前的colModel
,浏览项目并找到其中的项目'name'
property 是您需要的列名称。要得到colModel
您可以使用$("#grid")[0].p.colModel
or $("#grid").jqGrid('getgridParam', 'colModel')
。所以代码可以像下面这样:
var getColumnIndexByName = function (columnName) {
var cm = $(this).jqGrid('getGridParam', 'colModel'), i, l = cm.length;
for (i = 0; i < l; i++) {
if (cm[i].name === columnName) {
return i; // return the index
}
}
return -1;
};
和用法就像
var $grid = $("#grid"),
iCol = getColumnIndexByName.call($grid[0], 'myColName');
要获取当前排序列的名称,您可以使用$grid.jqGrid('getGridParam', 'sortname')