jqGrid按列名排序索引

时间:2012-03-06 06:18:48

标签: jquery jqgrid

简单的问题。是否有一个函数来在网格中按名称获取列的当前排序位置?

1 个答案:

答案 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; };