Nach Speichern oder Bearbeiten JqGrid nicht aktualisieren Sie die Datensätze
Im mit JqGrid auflisten, hinzufügen, löschen, Bearbeiten, finden, der meine Aufzeichnungen. Wenn ich wählen Sie die loadonce=false, es in der Regel aktualisieren Sie die Datensätze nach del, Bearbeiten oder hinzufügen. Aber, paging und Suche mechanisim nicht funktioniert. Wenn ich dann die loadonce=true ist, aktualisieren Sie die Datensätze nach dem löschen, nicht nach dem hinzufügen oder Bearbeiten. Und dann die Auslagerungsdatei und die Suche läuft normalerweise in loadonce=true-Modus. ich habe versucht, die;
$("#list").setGridParam({datatype:'json', page:1}).trigger('reloadGrid');
oder
afterInsertRow: function (rowid,rowdata,rowelem){
alert("hello"); //this wasnt invoked
}
aber Sie nicht mein problem lösen.
Was ist der Grund, warum mein problem.
Die Bearbeiten-Modus Sie verwenden: Formular Bearbeiten (zum Beispiel Schaltflächen Hinzugefügt von
Im mit navGrid nicht inline-Bearbeiten-Modus
navGrid
) oder inline-Bearbeitung (zum Beispiel Schaltflächen Hinzugefügt von inlineNav
)? Es sind zwei absolut verschiedene codes von jqGrid, die arbeiten anders.Im mit navGrid nicht inline-Bearbeiten-Modus
InformationsquelleAutor Rahman Usta | 2012-06-29
Du musst angemeldet sein, um einen Kommentar abzugeben.
Wenn Sie
loadonce: false
als Sie zum implementieren von paging, Sortieren und suchen auf der server-Seite. Wenn paging und Suche nicht funktionieren, dann brauchen Sie nicht implementiert wurden die Funktionen in Ihrer aktuellen server-code.Die option
reloadAfterSubmit
geben Sie an, ob das grid neu geladen werden nach der Bearbeitung.Wenn Sie
loadonce: true
diedatatype
geändert'local'
nach dem ersten laden. Das problem ist, dass jqGrid nicht die Unterstützung der lokalen form der Bearbeitung. So implementieren Sie den server-Teil für Hinzufügen/Bearbeiten/löschen. Das problem ist, das zurückladen in dem Fall ausgeführt werden, lokalen und nicht vom server. Zum zurückladen der Daten vom server nach Ende der Formularbearbeitung können Sie zurücksetzen derdatatype
auf den Ausgangszustand ('json' oder 'xml') innerhalb desafterSubmit
Rückruf. In dem Fall, das nächste nachladen (beireloadAfterSubmit: true
) wird vom server wie Sie wollen.AKTUALISIERT: Der folgende code von afterSubmit sollte das problem lösen:
Sie versuchte, zu
$(this).setGridParam({datatype:'json'});
innerhalb vonafterSubmit
Rückruf der form Bearbeiten, wie ich empfohlen, Sie in meiner Antwort?ich verwendet, wie oben ; jQuery("#toolbar").jqGrid('navGrid','#ptoolbar',{del:true,add:true,edit:true,search:true,refresh:true},{ afterSubmit:function(){ $(this).setGridParam({datatype:'json'}); } }); und nicht ändern
Der Ursache sollten Sie wieder die richtigen Werte aus der
afterSubmit
(siehe Dokumentation). Die zurückgegebenen Werte für "Hinzufügen" und "Bearbeiten" anders sein. Im Falle der Edit-operation, die Sie verwenden könnenafterSubmit:function(){ $(this).jqGrid("setGridParam", {datatype:'json'}); return [true];}
. Ich denke, im Fall vonreloadAfterSubmit
man zurückkehren kann;[true]
im Falle der Add-operation zu.Meinen Glückwunsch! Es klingt wie Ihr problem gelöst jetzt. Ist es so?
InformationsquelleAutor Oleg
Versuchen, Diesen Code;
InformationsquelleAutor Metin Atalay