【发布时间】:2013-02-10 07:21:13
【问题描述】:
我尝试过使用remapColumns:
grid.remapColumns(newOrder, false, false);
但遇到了一个奇怪的问题 - 列标题已重新排序,但列信息保持不变。怎么解决?
编辑:
整个方法
permutateGrid: function (gridID, columnsToShow, columnsToHide) {
var newOrder = [];
var grid = $(gridID);
for (var i = 0; i < columnsToShow.length; i++) {
newOrder.push(GridHelpers.getColumnSrcIndexByName(grid, columnsToShow[i]));
}
var columnsCount = grid.jqGrid("getGridParam", "colModel").length;
for (var i = 0; i < columnsCount; i++) {
if (newOrder.indexOf(i) === -1) {
newOrder.push(i);
}
}
showColumns(gridID, columnsToShow);
hideColumns(gridID, columnsToHide);
grid.jqGrid('remapColumns', newOrder, false, false);
grid[0].jqGrid().updateColumns();
},
【问题讨论】:
-
您在“列信息”下的意思是什么?究竟是什么问题?你使用与
colModel长度相同的newOrder数组吗? -
列信息是列内容。
newOrder与 'colModel' 的长度相同,请参阅编辑 -
您使用哪个版本的 jqGrid?我不知道
updateColumns。它现在在 jqGrid 中不存在。而且我还是不明白你有什么问题。什么是“列内容”?你的意思是网格列的列标题吗?您何时何地调用permutateGrid函数(例如在空网格中、在某些回调内部等) -
我删除了
updateColumn字符串,因为没有这样的功能。我正在使用 jqGrid 4.4.1 版。我从网格回调中调用permutateGrid并提供一些信息,然后调用'reloadGrid'。问题如下:只有列 HEADERS 在这些操作之后重新排序。 -
@Oleg:wiki (trirand.com/jqgridwiki/doku.php?id=wiki:methods) 仍然列出了 updateColumns 方法,这可能是混乱的来源。另请参阅此问题 (stackoverflow.com/questions/18191543/…) 和 jqGrid 论坛 (trirand.com/blog/?page_id=393/help/…) 上的此帖子,它引导我来到这里。
标签: javascript jqgrid remap