2010-09-06 4 views
7

Einige schnelle Suche dreht sich nur um eine neue Zeile zu einem jQGrid über einen modalen Popup mit den editierbaren Felder addieren.jQGrid, wie fügt man eine neue Zeile innerhalb des Rasters hinzu, nicht über ein Modal?

Kann mir jemand auf eine Probe zeigen oder einen Code zeigen Sie mir, dass Sie eine neue leere Zeile in das Netz selbst, an der Spitze hinzufügen können?

Ich habe eine Aktionsspalte am äußersten rechten Ende des Gitters, in der onRowSelect() Ich habe ein Speichern-Button angezeigt und ich kann diese Taste die das Netz speichern auszukommen und erfrischen Ich denke ..

Ich kann nicht Finde heraus, wie du auf eine Schaltfläche "Zeile hinzufügen" klickst und eine leere Zeile oben im Raster hinzufügst.

Eine Option, die ich sehen kann, ist die aktuelle Zeile hinzufügen modal, um Stil wie eine horizontale Reihe zu schauen und legen Sie es wie seine eine Reihe am oberen Rande des Gitters erscheinen.

jqGrid Dokumentation: http://www.trirand.com/jqgridwiki/

Antwort

10

Wenn Sie Datentyp verwenden: ‚local‘, dann können Sie addRowData Methode zum Einfügen der Zeile mit Positionsparameter zu 'first' gesetzt verwenden. Siehe einige Beispiele unter http://www.trirand.com/jqgridwiki/doku.php?id=wiki:retrieving_data#array_data.

+0

Ich benutze den Datentyp json im Moment. Gibt es eine Möglichkeit, dass ich addRowData verwenden kann, ohne lokal zu wechseln? –

+0

@Moin Zaman: Ich bin mir nicht sicher, dass ich richtig verstehe, was Sie tun möchten. Die einzige Annahme ist, dass Sie den Inline-Bearbeitungsmodus verwenden und keine Formularbearbeitung für neue Daten verwenden möchten. Sie möchten eine leere Zeile hinzufügen und dem Benutzer erlauben, sie im Inline-Bearbeitungsmodus zu bearbeiten. Willst du was? Wenn nicht, erläutern Sie bitte genauer, warum Sie Daten im Grid hinzufügen möchten, die die Daten vom Server anzeigen. – Oleg

+0

Ich beziehe das Raster aus einer Datenbank und entpacke die Daten als json. Ich plane auch, neue Zeilen oder bearbeitete Zeilen in der Datenbank zu speichern. Ich möchte eine leere Zeile hinzufügen, wenn der Benutzer eine neue Zeile erstellen möchte. Der Benutzer kann dann die Werte eingeben und in der Aktionsspalte auf Speichern klicken, um diese Zeile in der Datenbank zu speichern.Ich kann dann das Raster aktualisieren und die JSON-Daten erneut abrufen, und es sollte die neu hinzugefügte Zeile enthalten. –

7

Diese Antwort ist mit freundlicher Genehmigung von Oleg in meiner vorherigen Frage here.

Verwendung $ ("# grid") addRowData (Rowid, Daten, Position, srcrowid);

eine neue Zeile mit der ID Fügt = rowid die Daten in Daten (ein Objekt) an der Position enthält angegebene (first in der Tabelle, zuletzt in der Tabelle oder vor oder nach der Zeile angegebenen in srcrowid). Die Syntax des Datenobjekts lautet: {Name1: Wert1, Name2: Wert2 ...} Dabei ist Name der Name der Spalte , wie im colModel beschrieben, und der Wert ist der Wert. Diese Methode kann mehrere Zeilen bei einmal einfügen. In diesem Fall sollten die Datenparameter Array als definiert sein [{name1: value1, name2: value2 ...}, {name1: value1, name2: value2 ...}] und die erste Option Rowid sollte die Namen von Daten enthalten, Objekt, das als ID der Zeile fungieren soll. Es ist nicht notwendig, dass der Name des Rowid in diesem Fall ein Teil von colModel sein sollte.

P.S. Werfen Sie einen Blick auf mein Profil für eine Reihe von Fragen und Antworten jqgrid.

Verwandte Themen