问题描述
一个简单的问题.是否有一个功能可以按名称在网格中获取列的当前排序位置?
Simple question. Is there a function to get the current sort position of a column by name in a grid?
推荐答案
remapColumns
方法中使用的索引与colModel
数组中使用的索引相同.重要的是要理解,索引可以与最初使用的jqGrid的colModel
参数不同.如果jqGrid使用选项rownumbers: true
,则将在colModel
数组的第一位插入名称为'rn'
的附加列. colModel
数组的所有其他元素的索引将增加.以相同的方式,选项multiselect: true
插入列'cb'
和选项subGrid: true
插入列'subgrid'
.以相同的方式,选项treeGrid: true
在colModel
数组后面附加一些其他隐藏列,这些隐藏列可以由treeReader
定义.对于treeGridModel: 'nested'
,列的默认名称为:'level'
,'lft'
,'rgt'
,'isLeaf'
,'expanded'
,'loaded'
和'icon'
或'level'
,'parent'
, 'isLeaf'
的'isLeaf'
,'expanded'
,'loaded'
和'icon'
.
The indexes used in the remapColumns
method are the same as in the colModel
array. It's important to understand, that the indexes can be different as in the colModel
parameter of jqGrid used initially. If jqGrid uses options rownumbers: true
an additional column with the name 'rn'
will be inserted at the first place of colModel
array. The indexes of all other elements of colModel
array will be incremented. In the same way the option multiselect: true
inserts the column 'cb'
abd the option subGrid: true
inserts the column 'subgrid'
. In the same way the option treeGrid: true
follows appending colModel
array with some additional hidden columns which names can be defined by treeReader
. The default names of the columns in case of treeGridModel: 'nested'
are: 'level'
, 'lft'
, 'rgt'
, 'isLeaf'
, 'expanded'
, 'loaded'
and 'icon'
or 'level'
, 'parent'
, 'isLeaf'
, 'expanded'
, 'loaded'
and 'icon'
in case of treeGridModel: 'adjacency'
.
因此,要通过名称查找列的索引,您应该只获取当前的colModel
,仔细检查各项,然后找到其中'name'
属性是所需列名称的项目.要获取colModel
,可以使用$("#grid")[0].p.colModel
或$("#grid").jqGrid('getgridParam', 'colModel')
.因此,代码如下所示:
So to find the index of the column by the name you should just get the current colModel
, look through the items and find the item where 'name'
property are the column name which you need. To get colModel
you can use $("#grid")[0].p.colModel
or $("#grid").jqGrid('getgridParam', 'colModel')
. So the code can be like the following:
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')
To get the name of the current sorted column you can use $grid.jqGrid('getGridParam', 'sortname')
这篇关于jqGrid按列名排序索引的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持!