Я пытался использовать remapColumns
:JQGrid колонны реорганизовать
grid.remapColumns(newOrder, false, false);
но получила странный вопрос - заголовки столбцов были заказаны, но информация о колонках остались нетронутой. Как это можно решить?
EDIT:
Всего mthod
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();
},
Что вы подразумеваете под рубрикой «информация о колонках»? Что именно не так? Вы используете массив 'newOrder', который имеет ту же длину, что и' colModel'? – Oleg
Информация о столбцах - это содержимое столбца. 'newOrder' имеет ту же длину, что и 'colModel', см. EDIT – skayred
, какую версию jqGrid вы используете? Я не знаю 'updateColumns'. Теперь он не существует в jqGrid. Более того, я до сих пор не понимаю, какая у вас проблема. Что такое «содержимое столбца»? Вы имеете в виду заголовки столбцов столбцов сетки? Когда и где вы вызываете функцию 'permutateGrid' (например, в пустой сетке, внутри некоторого обратного вызова и т. Д.) – Oleg