2012-06-29 5 views
2

Im использует JqGrid для отображения, добавления, удаления, редактирования, поиска моих записей. Когда я выбираю loadonce = false, он обычно обновляет записи после del, редактирует или добавляет. Но пейджинг и поиск mechanisim не работает. Как только я выберем loadonce = true, он обновит записи после удаления, а не после добавления или редактирования. А затем поисковый вызов и поиск выполняются обычно в режиме loadonce = true. я попробовал;После сохранения или редактирования JqGrid не обновляет записи

$("#list").setGridParam({datatype:'json', page:1}).trigger('reloadGrid'); 

или

afterInsertRow: function (rowid,rowdata,rowelem){ 
    alert("hello"); // this wasnt invoked 
} 

но они не решить мою проблему.

В чем причина моей проблемы.

+0

Какой режим редактирования вы используете: редактирование формы (например, кнопки, добавленные 'navGrid') или встроенное редактирование (например, кнопки, добавленные' inlineNav')? Это два * абсолютно разных кода * jqGrid, которые работают по-разному. – Oleg

+0

Im using navGrid не встроенный режим редактирования –

ответ

11

Если вы используете loadonce: false, то вам необходимо выполнить поиск подкачки, сортировку и поиск со стороны сервера. Если пейджинг и поиск не работают, то вы не реализовали функции в вашем текущем коде сервера.

Опция reloadAfterSubmit определяет, будет ли сетка перезагружаться после редактирования.

При использовании loadonce: truedatatype будет изменен на 'local' после первой загрузки. Проблема в том, что jqGrid не поддерживает редактирование локальной формы. Таким образом, вы должны реализовать серверную часть для добавления/редактирования/удаления. Проблема в том, что перезагрузка в случае будет выполнена local, а не с сервера. Чтобы перезагрузить данные с сервера после завершения редактирования формы, вы можете сбросить datatype в исходное состояние («json» или «xml») внутри обратного вызова afterSubmit. В случае следующей перезагрузки (в случае reloadAfterSubmit: true) будет осуществляться с сервера, как вы, как хотите.

ОБНОВЛЕНО: Следующий код afterSubmit должен решить проблему:

afterSubmit: function() { 
    $(this).jqGrid("setGridParam", {datatype: 'json'}); 
    return [true]; 
} 
+0

im using loadone: true и, я реализовал удаление, добавление и редактирование на стороне сервера. моя единственная проблема после сохранения или редактирования обновления страницы или сетки list.i в любом случае с использованием reloadAfterSubmit: true, то я использовал для изменения local на json, как это; $ ("# list"). setGridParam ({datatype: 'json', page: 1}). trigger ('reloadGrid'); , затем не перезагрузила сетку. –

+1

@RahmanUsta: Вы пытались установить '$ (this) .setGridParam ({datatype: 'json'});' внутри 'afterSubmit' обратного вызова редактирования формы, как я рекомендовал вам в своем ответе ? – Oleg

+0

я использовал, как указано выше; jQuery («панель инструментов»). jqGrid ('navGrid', '# ptoolbar', {del: true, add: true, edit: true, search: true, refresh: true}, { afterSubmit: function() { $ (this) .setGridParam ({datatype: 'json'}); } }); и не изменилось –

0

Try Этот код;

afterSubmit: function() { location.reload(true); } 
Смежные вопросы