Перезагрузите загруженный jqGrid с другими данными таблицы

У меня есть страница, которая отображает таблицу в двух разных режимах. В каждом режиме у меня есть другой набор столбцов. Я использую jqGrid для отображения таблицы. Когда я пытаюсь загрузить таблицу во второй раз (с одинаковыми или разными столбцами, если на то пошло), таблица не обновит данные.

Есть ли другой API для перезагрузки данных? Или я должен использовать некоторый метод, чтобы сначала очистить таблицу?

Ответы

Ответ 1

с помощью метода "GridUnload" выгружает сетку и оставляет исходную таблицу HTML. Следующий вызов для создания сетки начнется с нуля с любой данной схемой

Ответ 2

Сегодня я столкнулся с этой проблемой. Я использую jqGrid для отображения результатов поиска из параметров, указанных в одном или нескольких полях формы. У меня есть событие click на кнопке поиска и событие keydown на самих полях для захвата возвращаемого ключа. Оба события вызывают функцию, которая сериализует форму и создает исходный jqGrid.

В исходной сетке у меня есть возможность вызвать функцию reloadEvents, когда gridCompletes:

gridComplete: reloadEvents

В функции reloadEvents у меня есть:

$("#frmSearch").bind("keydown", function(e) {
    if (e.keyCode == 13) {
        $('#searchList').setGridParam({url:'/model/actSearch.cfm?'+$('#frmSearch').serialize()});
        $('#searchList').trigger("reloadGrid");
    }
});

$('#btnSearch').click(function(){
    $('#searchList').setGridParam({url:'/model/actSearch.cfm?'+$('#frmSearch').serialize()}); 
    $('#searchList').trigger("reloadGrid");  
}); 

Если вы загружаете свои данные в свою сетку другим способом, вы можете использовать setGridParam для изменения того, что вам нужно. Метод reloadGrid - это то, что должно обновлять ваши данные на основе параметров, которые вы меняете.