2010-11-30 6 views
0

Wir Last 10 Reihen von statischen Daten in unsere jqGrid durch eine JSON String zu erstellen:Beste Methode, um jqGrid mit statischen Daten zu laden?

var d = "{\"page\":1,\"records\":10,\"total\":1,\"rows\":[" + 
       "{\"id\":\"1\",\"cell\":[\"\"]}," + 
       "{\"id\":\"2\",\"cell\":[\"\"]}," + 
       "{\"id\":\"3\",\"cell\":[\"\"]}," + 
       "{\"id\":\"4\",\"cell\":[\"\"]}," + 
       "{\"id\":\"5\",\"cell\":[\"\"]}," + 
       "{\"id\":\"6\",\"cell\":[\"\"]}," + 
       "{\"id\":\"7\",\"cell\":[\"\"]}," + 
       "{\"id\":\"8\",\"cell\":[\"\"]}," + 
       "{\"id\":\"9\",\"cell\":[\"\"]}," + 
       "{\"id\":\"10\",\"cell\":[\"\"]}" + 
      "]}"; 

und Laden, die in einem Raster mit datatype:jsonstring und datastr:d wo unsere Gitter 15 Spalten und jede Spalte ist mit einem benutzerdefinierten Formatierer geschaffen .

Gibt es einen besseren Weg, dies zu tun?

Antwort

1

Entspricht der documentation (Beschreibung des data Parameter sehen)

Es kann addRowData Verfahren ersetzen, die langsam auf relativ große Datenmengen ist

ich jede Maßnahme nicht selbst gemacht, aber die Verwendung von data Parameter scheint mir auch als eine der effektivsten Möglichkeiten. Es ist wichtig, wie viele Datenzeilen Sie hinzufügen möchten. Der Parameter datastr, der zusammen mit datatype:jsonstring verwendet wird, ist relativ alt, bevor er in der Version 3.7 das lokale Paging von Daten einführt. In Bezug auf den Parameter data können Sie große Satz von reinen Daten hinzufügen, sortieren und die erste Seite der Daten anzeigen. Das Füllen der ersten Seite mit den Daten vom Parameter data erfolgt in Bezug auf addJSONData Funktion, so dass der Teil der Arbeit in allen Fällen gleich ist. Nur das Auffüllen von Daten, deren Größe größer ist als die Seitengröße, macht den Weg mit dem data Parameter effektiver.

Wenn Sie data Parameter verwenden, sollten Sie nicht vergessen, zusätzliche id Eigenschaft im Datenarray zu definieren. Dies kann entweder die Eigenschaft mit dem Standardnamen id oder ein anderer in localReader definierter Name sein. Wenn Sie für eine Spalte des jqGrid key:true definiert haben, wird die zusätzliche Eigenschaft id nicht benötigt.

1

Antwort ist: ja

Wie? Rendern Sie eine reguläre Tabelle und verwenden Sie dann das Jqgrid-Plugin "grid.tbltogrid.js". Sehr nützlich und einfach. Intern verwendet es die Methode "addRowData" von jqgrid, aber warum müssen Sie den geschriebenen Code wiederholen, richtig? ;)

Verwandte Themen