«loadonce: true» и «datatype: json» в jqGrid не ладят - PullRequest
1 голос
/ 06 июля 2011

У меня есть сетка в моем приложении. Чтобы заполнить его данными, пользователь заполняет форму и отправляет ее. Сервер отвечает данными JSON, содержащими все результаты для сетки (сервер снова не ударил).

С точки зрения jqGrid, настройки будут loadonce: true и datatype: "json". Но они не работают вместе.

То, что я делал - и это кажется плохим способом - это следующее, которое изменяет настройки сетки, загружает данные и снова изменяет настройки сетки.

$("#myGrid").jqGrid("setGridParam", {datatype: "json", loadonce: true});
$("#myGrid")[0].addJSONData(data);
$("#myGrid").jqGrid("setGridParam", {datatype: "local", loadonce: true});

Есть ли другой, лучший способ?

Спасибо!

Ответы [ 3 ]

2 голосов
/ 06 июля 2011

Если вы установили правильную url сетки, и сетка будет заполнена данными сервера (с loadonce:true или без него), то для перезагрузки данных с сервера вы можете сделать следующее:

$("#myGrid").jqGrid("setGridParam",{datatype:"json"}).trigger("reloadGrid");

или

$("#myGrid").jqGrid("setGridParam",{datatype:"json"}).trigger("reloadGrid",[{page:1}]);
1 голос
/ 20 октября 2014

У меня была такая же проблема, мое решение было:

$("#myGrid").jqGrid('setGridParam', { url: 'MyNewUrl', datatype:"json" });
$("#myGrid").trigger("reloadGrid");

или

$("#myGrid").jqGrid('setGridParam', { url: 'MyNewUrl', datatype:"json"}).trigger("reloadGrid");

Я надеюсь, что это работает для вас.

1 голос
/ 10 августа 2012

Я только что решил ту же проблему, используя событие afterSubmit для операций создания / редактирования / удаления. Вот вопрос и ответ:

Не удается обновить jqgrid с помощью loadonce: true

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