Как перехватить события изменения столбца jqGrid? - PullRequest
4 голосов
/ 04 января 2011

В нашем приложении мы используем jqGrid, который поддерживает скрытие и изменение порядка столбцов. Когда столбцы скрыты или переупорядочены, мы хотим сохранить новые настройки в нашей базе данных. Но для этого нам нужно как-то зафиксировать событие скрытия или изменения порядка. Или, возможно, для захвата при изменении colModel.

Есть ли способ захватить и обработать эти события?

Спасибо.

Ответы [ 2 ]

4 голосов
/ 04 января 2011

Вы можете использовать событие done для columnChooser .Вот пример:

var grid = $("list");
grid.navButtonAdd(
    '#pager',
    {caption:"", buttonicon:"ui-icon-calculator", title:"Column choose",
     onClickButton: function() {
         grid.jqGrid('columnChooser',
                     {
                         "done": function(perm) {
                             if (perm) {
                                 this.jqGrid("remapColumns", perm, true);
                             }
                             // here you can do some additional actions
                         }
                     });
     }
});

ОБНОВЛЕНО : Если вы определите параметр sortable как

sortable: {
    update: function (permutation) {
        alert("sortable.update");
    }
}

, а не как sortable:true, вы получите уведомлениео новом порядке столбцов.Подробности смотрите в исходном коде jqGrid.Массив permutation с целыми числами имеет то же значение, что и в remapColumns функциях (подробности см. В моем старом ответе ).

1 голос
/ 13 апреля 2011

Вы можете фиксировать изменения столбцов с помощью параметра сортировки, как указано в «обновлении» Олега выше, или как обсуждено на доске объявлений jqGrid .

Однако, обратите внимание, что массив, переданный вашему обратному вызову, будет относительно текущего порядка столбцов. Другими словами, сохранение массива как есть после перемещения нескольких столбцов не даст желаемых результатов. Смотрите мой ответ на этот другой вопрос stackoverflow .

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...