Проблема в том, что текущая реализация setFrozenColumns
имеет некоторые ограничения. Редактирование (в любом режиме редактирования) и sortable: true
не разрешено для замороженных столбцов, но setFrozenColumns
. Более того, sortable: true
не должен допускать использование заголовков замороженных столбцов. С другой стороны, setFrozenColumns
содержит простой тест некоторых параметров (см. here), и метод ничего не делает, если установлены некоторые такие параметры (например, cellEdit
или sortable
).
Я предложил в the post (с the demo) способом реализации обходного пути. Способом является изменение подхода от the answer и this one.
Я нахожу ваш вопрос интересным, и поэтому я создал the demo, который демонстрирует, как каждый может реализовать ваши требования. Он показывает следующие результаты (анимированный GIF):
Он использует в основном следующий код
// create the grid
$grid.jqGrid({
...
});
$grid.bind("jqGridLoadComplete jqGridInlineEditRow jqGridAfterEditCell jqGridAfterRestoreCell jqGridInlineAfterRestoreRow jqGridAfterSaveCell jqGridInlineAfterSaveRow", function() {
fixPositionsOfFrozenDivs.call(this);
});
$grid.jqGrid("setGridParam", {cellEdit: false, sortable: false});
$grid.jqGrid("setFrozenColumns");
$grid.jqGrid("setGridParam", {cellEdit: true, sortable: true});
fixPositionsOfFrozenDivs.call($grid[0]);
try {
var p = $grid.jqGrid("getGridParam"), tid = $.jgrid.jqID(p.id), colModel = p.colModel, i, n = colModel.length, cm,
skipIds = [];
for (i = 0; i < n; i++) {
cm = colModel[i];
if ($.inArray(cm.name, ["cb", "rn", "subgrid"]) >=0 || cm.frozen) {
skipIds.push("#jqgh_" + tid + "_" + $.jgrid.jqID(cm.name));
}
}
$grid.jqGrid("setGridParam", {sortable: {options: {
items: skipIds.length > 0 ? ">th:not(:has(" + skipIds.join(",") + "),:hidden)" : ">th:not(:hidden)"
}}});
$grid.jqGrid("sortableColumns", $($grid[0].grid.hDiv).find(".ui-jqgrid-labels"));
} catch (e) {}
http://www.trirand.com/jqgridwiki/doku.php?id=wiki:frozencolumns – Runcorn
вам нужно изменить некоторые Do замороженные столбцы или только столбцы, у которых нет свойства 'frozen: true'? – Oleg
@Oleg - Мне нужно отредактировать только незамороженные столбцы, но эти незамороженные столбцы нужно переупорядочить или показать/скрыть. – user3759787