Wie man wählen Sie den Wert in jqGrid bei der Verwendung von <select> editoptions auf eine Spalte
Habe ich ein paar Spalten in jqGrid mit edittype="select". Wie kann ich Lesen Sie den Wert der option dem Wert der aktuell ausgewählten in eine bestimmte Zeile?
z.B.: Wenn ich die folgende option, wie bekomme ich "FE" für FedEx, etc.
editoption: { value: “FE:FedEx; IN:InTime; TN:TNT” }
getRowData() für die rowId/cellname zurück, nur der text angezeigt/- Komponente der select.
Wenn ich einen "ändern" Daten-Ereignis auf die Spalte, die zugrunde liegenden feuert ändern Ereignisse, die nur auf Klicks und nicht auf der Tastatur wählt (es gibt zahlreiche Verweise auf generische wählt und Maus - /Tastatur-Probleme).
Bottomline, wenn ein neuer Wert ausgewählt ist, muss ich wissen, der Wert der option zum Zeitpunkt der änderung, und auch vor der Veröffentlichung auf den server.
- mögliche Duplikate von Wie man ein jqGrid Wert der Zelle
Du musst angemeldet sein, um einen Kommentar abzugeben.
Den Dokumentation für
getRowData
Staaten:Ist die Zeile immer noch bearbeitet wird, wenn Sie anrufen
getRowData()
?Update
Vereinbart, jqGrid nicht behandelt
<select>
sehr gut. In meiner Anwendung, die ich tatsächlich in der Lage war, dies zu umgehen, indem nicht die Angabe einer option Bearbeiten (also Schlüssel/Wert-waren beide "FedEx"); die übersetzung ID wird dann auf dem server ausgeführt. Dies ist nicht der richtige Weg, um code, aber es funktionierte gut genug für meine Bedürfnisse zu der Zeit.Müssen Sie die formatter der Spalte "wählen Sie"
Beispiel aus dem wiki:
Sehen Sie hier mehr jqgridwiki
Ich hatte das gleiche problem, und dieses funktioniert wie ein Charme
Ich löste diese Frage mithilfe Einstellung JqGrid unformat option und verwenden Sie die folgende Funktion für das Rückgängigmachen Wert der Zelle.
Der oben beschriebenen Methode aufgerufen wird, werden jedesmal, wenn ein grid-Zelle müssen die Daten wie beim Aufruf "getRowData" - Methode. Aber, meine Funktion nur unterstützt Schlüssel-Wert gepaart option Bearbeiten. Sie müssen Ihre Daten ändern, wie die folgenden Muster.
Weitere Informationen zu unformat option, sehen Sie auf den folgenden link.
JqGrid Wiki - Benutzerdefinierte Formatter -
PS. Es ist möglich, ändern Sie die Funktion für die Unterstützung der client-Seite dropdownlist-Wert. Aber ich denke, es ist unmöglich, die Anwendung dieser Funktion für die server-Seite dropdownlist Wert.
Update
In der neuesten jqGrid 3.8.1, fand ich einige Fehler, wenn der Benutzer die Bearbeitung Abbrechen Zeile(oder programmgesteuert aufrufen "restoreRow" - Methode), jqGrid wird, Etiketten erstellen, indem Sie mit dem Schlüssel der Daten (anstelle der Wert der Daten). Ich erstelle folgende Funktion um dieses Problem zu beheben. Für diese, müssen Sie es als benutzerdefinierte formatter-Funktion in dieser Spalte. Diese Funktion ordnet Wert der Zelle auf den Wert der Liste durch den Vergleich Schlüssel oder Wert.
So, können Sie die senden-Taste oder-Wert als Spalte Daten, die gerendert werden durch den oben genannten benutzerdefinierten formatter.
Wenn in Fall haben Sie Anspruch, wo jede Zeile hat dropdown Menü und es hat Werte wie
FE:'FedEx',
IN:'InTime',
TN:'TNT'
Nun anstelle des Speicherns der Daten an backend auf dropdown-change-Ereignis;Sie wollen, um Daten zu speichern auf "Speichern" klicken Sie in der Zeile Ebene, sondern speichern möchten dropdwon ausgewählten Wert (TN) nicht angezeigt text(TNT). Sie können erstellen Sie ein weiteres hidden-Feld ausgewählte Land code auf inline-Bearbeitung der dropdown-Liste. Hier, wenn der user-exit nach Zell inline-editing afterSaveCell-Methode aufgerufen werden und Sie können festlegen, wie erwähnt in folgenden code: