JqGrid: восстановление состояния, включая фильтры столбцов после перегруппировки столбцов - PullRequest
0 голосов
/ 12 января 2012

Я нахожусь в ситуации, когда мне нужно сохранить состояние в сетке после изменения размера, изменения порядка, скрытия столбцов.

Все работает хорошо, за исключением того, что фильтры столбцов (раскрывающиеся списки, текстовое поле), указатель даты) не восстанавливается в правильном столбце после перемещения столбца с фильтром (collumnchooser).

Используя следующий JavaScript, я могу восстановить большинство того, что мне нужно (размер, порядок и видимостьстолбцы), но восстановление фильтров в правильных столбцах не работает.(Фильтры появляются через несколько столбцов после того места, где они должны быть.

var listName = jQuery('#list').jqGrid('getGridParam', 'customName');

var colModel = LoadColumnModel(listName);
var perm = jQuery.cookies.get(listName + '_list_perm');
var rowNumber = jQuery.cookies.get(listName + '_list_rowNumber');

if (colModel) {
    var grid = jQuery('#list');
    for (var i = 0; i < colModel.length; i++) {
        var column = colModel[i];
        if (column.hidden) {
            grid.jqGrid('hideCol', column.name);
        };
        ***//I hoped next line would do the trick, but it didn't :(***
        if (column.search && column.searchoptions) {
            grid.jqGrid('setColProp', column.name, { search: true, searchoptions:   column.searchoptions });
        };
    }
    grid.jqGrid('setGridParam', { colModel: colModel });
    loadGrid = false;
    if (rowNumber) {
        grid.jqGrid('setGridParam', { rowNum: rowNumber });
        jQuery('.ui-pg-selbox').val(rowNumber);
    }
    grid.trigger('reloadGrid');
    if (perm) {
        grid.jqGrid("remapColumns", perm, true);
    }
}

У кого-нибудь есть подсказка?

1 Ответ

1 голос
/ 12 января 2012

Вы не должны устанавливать searchoptions в сетке. вместо этого вы можете сохранить / восстановить параметр postData в jqGrid.

Я бы рекомендовал вам посмотреть ответ , ответ и этот . Он показывает, как реализовать сохранение / восстановление состояния сетки. Я использовал localStorage вместо файлов cookie по причинам, которые я объяснил в ответе .

...