Как сохранить текущую строку, если грид открывается снова или страница обновляется?
Ответ в Persisting jqGrid column preferences описывает как сохранить ширину колонки и некоторые другие параметры.
В этом демонстрационном примере ответа я щелкнул по некоторой строке и нажал F5. Предыдущий щелкнутый ряд не был выделен. Как сохранить / восстановить текущую строку в локальном хранилище?
Update
Если структура столбцов jqGrid изменена в приложении и пользователь снова открывает приложение из браузера, restorecolumnstate создает некорректную модель колонок, в которой отсутствуют некоторые элементы. Это вызывает исключение в refreshSearchingToolbar, который предполагает, что все элементы colmodel присутствуют.
Как это исправить? Как вывести модифицированный colmodol и не восстанавливать colmodel в этом случае? Или же restoreColumnState должен обновить colModel так, чтобы был создан правильный массив?
**Обновление 2 **
Если myColumnsState.permutation содержит нули $grid.jqGrid("remapColumns", myColumnsState.permutation, true)
создается некорректный colmodel. Вот скриншоты из отладчика VS непосредственно до и после вызова remapColumns
после:
Я исправил это, изменив код на
if (isColState && myColumnsState.permutation.length > 0) {
var i, isnull = false;
for (i = 0; i < myColumnsState.permutation.length; i = i + 1) {
if (myColumnsState.permutation[i] == null) {
isnull = true;
break;
}
}
if (!isnull) {
$grid.jqGrid("remapColumns", myColumnsState.permutation, true);
}
Это лучшее решение?