我想按column name
或column index (string)
而非column index (int)
重新排序jqGrid列。我见过这个API
$("#list").jqGrid("remapColumns", [0,1,12,3,14,5,6,7,8,11,2], true);
它使用列索引号,但问题是在更改顺序后jqGrid执行reindex并更改索引。所以我正在寻找接受列名而不是整数值的API。
这是获取列名
的代码var columnModels = grid.jqGrid('getGridParam', 'colModel');
var user_visibalColumn = [];
for (var columnModelIndex in columnModels) {
var columnModel = columnModels[columnModelIndex];
if (!columnModel.hidden) {
user_visibalColumn.push(columnModel.name);
}
}
//console.log(user_visibalColumn);
因此,在事件发生一段时间后,我想使用上面的getGridParam
数组列触发user_visibalColumn
。
这可能吗?如果没有,那么有办法添加HTML数据标签col-id,以便我可以检索col-id。
我看过this answer,但我无法弄清楚如何实施restoreColumnState
。
任何建议都会非常有用。
感谢。
答案 0 :(得分:1)
请写下你使用(或可以使用)的jqGrid版本和jqGrid的哪个分支。此外,重要的是要编写您使用的jqGrid的哪个分支(free jqGrid,商业Gurrido jqGrid JS或版本中的旧jqGrid< = 4.7)。
我同意使用列索引而不是列名的问题。这就是为什么我在免费的jqGrid fork中进行了很多更改的原因,我开发的是从版本4.7.1开始制作主要的旧fork商业广告(参见the post)。我将方法remapColumnsByName
与旧方法remapColumns
一起介绍。 The answer提供了the demo,其中演示了remapColumnsByName
的用法。此外,自由jqGrid主要在内部保存列名而不是列索引,并且它具有帮助选项iColByName
,这有助于通过列名获取列的当前索引。
我建议你将jqGrid升级到免费jqGrid的当前(4.13.4)版本并使用remapColumnsByName
。