jqGrid按列名排序索引
简单的问题。 是否有一个函数来在网格中按名称获取列的当前排序位置?
remapColumns
方法中使用的索引与colModel
数组中的索引相同。 重要的是要理解,索引可以与最初使用的jqGrid的colModel
参数不同。 如果jqGrid使用选项rownumbers: true
,将在colModel
数组的第一个位置插入名为'rn'
的其他列。 colModel
数组的所有其他元素的索引将递增。 以同样的方式选择subGrid: true
插入列'subgrid'
subGrid: true
选项subGrid: true
插入列'subgrid'
subGrid: true
'subgrid'
。 以同样的方式,选项treeGrid: true
跟随colModel
数组附加一些额外的隐藏列,其名称可以由treeReader
定义。 在treeGridModel: 'nested'
情况下,列的默认名称是: 'level'
, 'lft'
, 'rgt'
, 'isLeaf'
, 'expanded'
, 'loaded'
和'icon'
或'level'
, 'parent'
对于treeGridModel: 'adjacency'
, 'parent'
, 'isLeaf'
, 'expanded'
, 'loaded'
和'icon'
treeGridModel: 'adjacency'
。
因此, colModel
名称查找列的索引,您应该获取当前的colModel
,查看项目并找到'name'
属性是您需要的列名称的项目。 要获取colModel
您可以使用$("#grid")[0].p.colModel
或$("#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')