Holen Sie benutzerdefinierte JQGrid JSON-Daten in gridComplete Methode
Hier ist eine typische JQGrid JSON-Antwort:
{
"page":1,
"records":537,
"rows":[..],
"rowCount":10,
"total":54
}
Zusammen mit diesem, die ich senden möchten, um weitere kundenspezifische Daten. Zum Beispiel würde ich gerne die Datenbank der Zeitpunkt der letzten Suche so, dass ich faul-reload mein raster, wenn änderungen stattgefunden haben, seit dann. Hier ist, wie ich würde gerne senden, dass die Daten:
{
//Custom name-value pairs:
"nameValues":{"lastSearchTime":"2011/09/01:14:14:56"},
//Normal JSON data:
"page":1,
"records":537,
"rows":[..],
"rowCount":10,
"total":54
}
Das problem ist, dass JQGrid schluckt die JSON-Antwort, anstatt Weiterleitung an den gridComplete
Methode. In anderen Worten, params nicht definiert ist in der folgenden Funktion:
function myGridComplete (params){
//params is undefined!
var JSONResponse = ?;//I need your help here!!!
globalGridVariables.lastSearchTime = JSONResponse.nameValues.lastSearchTime;
//Rest of grid complete method
..
}
Bitte lassen Sie mich wissen, wenn es gibt einen Weg, um Zugriff auf die JSON-response-Objekt in der gridComplete
Methode, oder wenn es eine andere unterstützte Möglichkeit zum hinzufügen von benutzerdefinierten Daten zu einem JSON-Antwort.
Vielen Dank!
Hinweis: ich will nicht senden Sie diese als eine versteckte Spalte, denn das wäre ineffizient.
Du musst angemeldet sein, um einen Kommentar abzugeben.
Können Sie
loadComplete
stattgridComplete
. DieloadComplete
Ereignis hat einen parameter (zum Beispieldata
), die für die vollständige Daten aus der server-Antwort-inclusive alle deine Erweiterungen.Alternative können Sie benennen Sie die
nameValues
zuuserdata
und verwenden$('#list').jqGrid('getGridParam', 'userData')
um den Wert. Sehen hier für weitere Informationen.Außerdem können Sie erwägen, die Nutzung von mehr HTTP-caching (siehe hier und hier) für die Ziele, die Sie beschrieben haben, in Ihre Frage.
Können Sie beforeProcessing hat die deserialisiert Reaktion und aktiv wird, bevor gridComplete und loadComplete.
Beispiel:
Und nur um es noch klarer aus der Dokumentation:
Unten ist die Ausführungsreihenfolge der Ereignisse, wenn ein ajax-request gemacht wird