2016-08-18 6 views
0

Ich habe eine Tabelle mit JQuery Grid mit 3 Spalten (Name, Datum, Wert) erstellt. Spalten 'Datum' und 'Wert' können Null- oder 'NA'-Werte haben. Also, wenn ich den Code unten als Teil jqGrid Funktion funktioniert es für den ‚Namen‘, aber nicht für ‚Datum‘ und ‚Wert‘:Wie fügt man dem jquery Grid eine benutzerdefinierte Sortierfunktion hinzu?

colModel: [ 
       {name: "name", sortable: true}, 
       {name: "date", sortable: true}, 
       {name: "value", sortable: true} 
      ], 

Wie kann ich die Sortierung für Datum und Wertspalte gearbeitet erhalten. Wie sollte ich die benutzerdefinierte Sortierung hinzufügen?

+0

Was ist der Fehler, wenn Sie versuchen, mit Wert oder Datum zu sortieren? –

+0

@Periklis Ich habe das Problem gefunden. Aber ich fand auch, dass es das Backend für jede Sortierung trifft (wann immer der Benutzer auf die Spaltenüberschrift klickt). Gibt es einen besseren Weg, diese Sortierung in jQuery Grid zu tun? – Nisman

+0

@Nisman: Welche Version von jqGrid verwenden Sie und von welcher Abzweigung von jqGrid ([freie jqGrid] (https://github.com/free-jqgrid/jqGrid), kommerzielle [Guriddo jqGrid JS] (http: // guriddo. net /? page_id = 103334) oder ein altes jqGrid in Version <= 3.7)? Die Möglichkeiten der benutzerdefinierten Sortierung hängen von den Informationen ab. Außerdem, wenn Sie wirklich Remote-Datentyp ('" json "' oder '" xml "') und keine 'loadonce: true' verwenden, dann ist * der Server * für das Sortieren zuständig. Wenn Sie die Daten * auf der Client-Seite * sortieren, muss das Format der Eingabedaten (wie Daten) bekannt sein. Bitte fügen Sie Ihre Frage mit den obigen Informationen an. – Oleg

Antwort

0

Wenn Sie datatype: "json" und loadonce: false verwenden, dann sortieren Sie nur Ihren Server. Kein clientseitiges Feature (jqGrid) kann Ihnen helfen, benutzerdefinierte Sortierung zu implementieren. Sie müssen die benutzerdefinierte Sortierung in Ihren Serverseitencode implementieren. Wenn der Benutzer beispielsweise auf die Überschrift der Spalte "date" klickt, sendet jqGrid die Ajax-Anforderung an den Server mit den Parametern sidx=date und sord=asc (oder sidx=date und sord=desc). Der Server muss korrekt sortierte JSON-Daten zurückgeben, und jqGrid zeigt die Daten in der vom Server zurückgegebenen Reihenfolge an.

So müssen Sie die benutzerdefinierte Sortierung in Ihrem Server-Side-Code implementieren.

0

Der colModel-Name sollte derselbe wie in Ihrer Tabelle sein.

+0

Jetzt habe ich herausgefunden, wie es funktioniert. Eigentlich gibt es zwei Probleme: Erstens will ich nicht das Backend zum Sortieren treffen. Sekunde die Datums- und Wertspaltenwerte, die von der unterschiedlichen Tabelle kommen. Sie basieren auf einigen Berechnungen. – Nisman

Verwandte Themen