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