как сохранить текущий ряд в jqgrid

Как сохранить текущую строку, если грид открывается снова или страница обновляется?

Ответ в 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

enter image description here

после:

after

Я исправил это, изменив код на

    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);
        }

Это лучшее решение?

7
задан Community 23 May 2017 в 12:07
поделиться