Ich versuche, das Flexigrid zu laden, indem ich einen JSON-String verwende, der von einem WCF-Dienst zurückgegeben wird.
Mein Service hat eine public string GetContacts(string CustomerID)
-Methode und gibt eine JSON-Zeichenfolge zurück.
Diese JSON-Zeichenfolge wird mithilfe eines Listenobjekts erstellt
System.Web.Script.Serialization.JavaScriptSerializer
klasse. Also, mein Ziel ist es, den JSON-String als Objekte an das my Flexigrid zu binden. Ich konvertiere das Web-Service-Ergebnis mithilfe von
Das Ergebnis ist die JSON-Zeichenfolge, die vom Dienst zurückgegeben wird. Gibt es eine Möglichkeit, Kundenobjekte an Flexigrid zu binden?
Flexigrid benötigt ein Format wie folgt in json
BEARBEITEN Danke an EAMann für das Formatupdate.
%Vor%Um die Daten an das Grid zu binden, bevorzuge ich das Senden der Daten über die Leitung und dann das Formatieren auf dem Client, aber das ist nur ich here ein Beispiel
%Vor%und dann ist alles was du brauchst
%Vor%ps dieses letzte Bit ist jquery Syntax
almog.oris Antwort ist fast perfekt. In der Tat, das war nur so, wie ich Dinge gebaut hatte, bevor ich versuchte, die Lösung zu googlen. Eine Ausnahme jedoch.
Das JSON-Objekt sollte sein:
%Vor% Wenn Sie das Array-Format des rows
-Elements vernachlässigen, ersticken Sie am Ende Flexigrid und werfen alle möglichen Fehler. Aber ich habe überprüft, dass dies fehlerlos funktioniert, solange Sie sich erinnern, welche Teile des Skripts JSON-Objekte und welche Teile Arrays von JSON-Objekten aufnehmen.
Dies ist ein älterer Beitrag, aber ich dachte, ich würde einen anderen Weg hinzufügen, um das exzellente Skript von almog.ori zu verwenden.
Das OP sagte, dass seine Daten von einem WCF-Dienst zurückgegeben wurden. Wenn Sie den Operationsvertragskörperstil als leer markieren, können Sie die Eigenschaft preProcess verwenden, um Ihre Funktion formatCustomerResults (oder eine andere Funktion) hinzuzufügen, um das Raster zu laden.
So:
%Vor%Hoffe das hilft jemandem.
Stellen Sie sicher, dass die Option dataType auf json gesetzt ist.
$('#gridContainer').flexigrid({
singleSelect: true,
showToggleBtn: false,
dataType: 'json'
});
Stellen Sie sicher, dass Sie auch die richtige HTTP-Methode verwenden, der Standardwert ist POST
Um GET zu verwenden:
%Vor%...
Ich empfehle Ihnen, diesem Beispiel zu folgen, um Ihren JSON-Code zu analysieren und Anfragen an den Server zu richten:
Schritt 1: Parsen mit einer Funktion
%Vor%Schritt 2: Der Flexigrid-Ansichtscode
%Vor%Schritt 3: Zusätzlich können Sie die Daten validieren oder serialisieren, um den Server anzufordern
%Vor%Ich hoffe, es wird helfen!
Es ist alt, ich weiß ... Aber hier ist ein Beispiel für json, das funktioniert:
%Vor%(5 Ergebnisse insgesamt; erste Seite (sie sind NICHT nullbasiert); 5 Datenzeilen, die jeweils {ID, "asd", "dsa", "ein Datum"} enthalten)
Versuchen Sie, Ihr erstes Element in Ihrer JSON-Zeichenfolge wie folgt zusammenzufassen.
%Vor%Tags und Links javascript json