Serverseitige Jqgrid-Erweiterungen: Umgang mit indirekten Datenbeziehungen
Diese Anleitung zeigt, wie Sie beschreibende Städtenamen anstelle von numerischen IDs in einem Jqgrid anzeigen und dabei serverseitige Erweiterungen nutzen, um indirekte Datenbeziehungen zu verwalten. Das Beispiel umfasst zwei Tabellen: Students
(SID, SNAME, CITY) und Locations
(CID, CNAME). Die Herausforderung besteht darin, CNAME
(Name der Stadt) in der Spalte CITY
des Jqgrids darzustellen, in der derzeit CID
(Stadt-ID) gespeichert ist. Direkte Datenbankverknüpfungen sind aufgrund der Datenstruktur der Student
-Klasse ungeeignet.
Die Lösung besteht darin, die JSON-Antwort des Servers um die erforderlichen Zuordnungsinformationen zu erweitern. Wir führen eine colModelOptions
-Eigenschaft ein, um die Spalte CITY
dynamisch zu konfigurieren:
<code class="language-json">{ "colModelOptions": { "CITY": { "formatter": "select", "edittype": "select", "editoptions": { "value": "11:Chennai;13:Delhi;12:Mumbai" }, "stype": "select", "searchoptions": { "sopt": [ "eq", "ne" ], "value": ":Any;11:Chennai;13:Delhi;12:Mumbai" } } }, "rows": [ { "SID": "1", "SNAME": "ABC", "CITY": "11" }, // ... more rows ] }</code>
Diese JSON-Antwort stellt Jqgrid die notwendigen Daten zur Anzeige von Städtenamen bereit. Die Eigenschaft editoptions.value
definiert die Zuordnung zwischen IDs und Namen.
Der beforeProcessing
-Ereignishandler von Jqgrid wendet diese Spaltenoptionen dynamisch an:
<code class="language-javascript">beforeProcessing: function (response) { var $self = $(this), options = response.colModelOptions, p; if (options != null) { for (p in options) { if (options.hasOwnProperty(p)) { $self.jqGrid("setColProp", p, options[p]); // ... any additional processing } } } }</code>
Dieser Code durchläuft colModelOptions
und aktualisiert die Eigenschaften der CITY
-Spalte in Jqgrid. Diese dynamische Konfiguration stellt sicher, dass Städtenamen anstelle von IDs angezeigt werden, was zu einem benutzerfreundlicheren und intuitiveren Raster führt. Diese Methode verwaltet indirekte Datenbeziehungen effektiv, ohne die Datenbankstruktur zu ändern oder ineffiziente clientseitige Suchvorgänge zu verwenden.
Das obige ist der detaillierte Inhalt vonWie zeige ich Städtenamen anstelle von IDs in Jqgrid mithilfe serverseitiger Erweiterungen an?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!