Laden von Flexigrid für jQuery mit JSON String

8

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

in Objekte %Vor%

Das Ergebnis ist die JSON-Zeichenfolge, die vom Dienst zurückgegeben wird. Gibt es eine Möglichkeit, Kundenobjekte an Flexigrid zu binden?

    
FakeRainBrigand 22.01.2009, 16:32
quelle

10 Antworten

18

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.ori 24.03.2009 14:35
quelle
3

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.

    
EAMann 13.08.2010 18:11
quelle
2

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.

    
trevorc 02.12.2010 18:32
quelle
1

Stellen Sie sicher, dass die Option dataType auf json gesetzt ist.

$('#gridContainer').flexigrid({ singleSelect: true, showToggleBtn: false, dataType: 'json' });

    
Hristo Yankov 18.01.2010 14:51
quelle
1

Stellen Sie sicher, dass Sie auch die richtige HTTP-Methode verwenden, der Standardwert ist POST

Um GET zu verwenden:

%Vor%

...

    
phil pirozhkov 02.11.2010 17:24
quelle
1

preProcess Lösung von nameEqualsPNamePubeGoldberg funktioniert perfekt.

So sieht meine benutzerdefinierte Funktion für preProcess aus.

%Vor%     
Shirish 09.03.2011 09:37
quelle
1

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!

    
Shobhit Sharma 06.05.2013 16:11
quelle
0

Ich glaube, dass der neueste Flex-Code die Lösung mit preProcess durchbrochen hat.

%Vor%

Sie müssen es so spiegeln, dass der preProcess vor dem Typ JSON if liegt. Andernfalls funktioniert die als Antwort aufgelistete Funktion nicht richtig.

    
Ariesto 02.05.2012 16:57
quelle
0

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)

    
max.haredoom 30.07.2013 00:34
quelle
0

Versuchen Sie, Ihr erstes Element in Ihrer JSON-Zeichenfolge wie folgt zusammenzufassen.

%Vor%     
Robbye Rob 16.04.2012 18:56
quelle

Tags und Links