Вы не единственный человек, у которого есть проблема.Я ответил на тот же вопрос раньше.Чтобы перезагрузить содержимое сетки с сервера, необходимо сбросить параметр datatype
до исходного значения «json» или «xml», а затем обновить сетку.Например,
jQuery("#list").jqGrid('setGridParam',{datatype:'json'}).trigger('reloadGrid');
ОБНОВЛЕНО : Для вызова строки внутри обработчика событий beforeRefresh вы можете выполнить следующие действия:
jQuery("#list").jqGrid('navGrid','#pager',
{ edit:false,view:false,add:false,del:false,search:false,
beforeRefresh: function(){
alert('In beforeRefresh');
grid.jqGrid('setGridParam',{datatype:'json'}).trigger('reloadGrid');
}
});
Я изменилпример из старого вопроса. Здесь Если вы нажмете кнопку обновления, вы в реальном времени увидите, как работает код.
ОБНОВЛЕНО 2 : Бесплатно jqGrid поддерживает некоторые новые параметры,Событие reloadGrid
поддерживает параметр fromServer: true
, который можно использовать для принудительной перезагрузки данных с сервера, а navGrid
поддерживает параметр reloadGridOptions
, который можно использовать для указания параметров reloadGrid
, используемых при нажатии кнопки «Обновить».Таким образом, приведенный выше код может быть
$("#list").jqGrid("navGrid", {
edit: false,
add: false,
del: false,
search: false,
reloadGridOptions: { fromServer: true }
});
. Кстати, можно использовать опцию navOptions
jqGrid, чтобы указать опции по умолчанию navGrid
(см. Статью в вики).Это позволяет писать код что-то вроде
$("#link").jqGrid({
// all typical jqGrid parameters
datatype: "json", // or "xml"
loadonce: true,
pager: true, // no empty div for page is required
navOptions: {
edit: false,
add: false,
del: false,
search: false,
reloadGridOptions: { fromServer: true }
}
}).jqGrid("navGrid");