Heim > Backend-Entwicklung > C++ > Wie zeige ich Daten aus mehreren Tabellen in jqGrid mithilfe einer JSON-Antwort mit City Mapping an?

Wie zeige ich Daten aus mehreren Tabellen in jqGrid mithilfe einer JSON-Antwort mit City Mapping an?

Mary-Kate Olsen
Freigeben: 2025-01-23 07:11:38
Original
499 Leute haben es durchsucht

How to Display Data from Multiple Tables in jqGrid Using a JSON Response with City Mapping?

jqGrid: Umgang mit Daten aus mehreren verwandten Tabellen

jqGrid, ein leistungsstarkes jQuery-Plugin, zeichnet sich durch die Anzeige von Daten aus verschiedenen Quellen aus. Dieses Beispiel zeigt, wie Daten aus zwei miteinander verbundenen Tabellen effizient dargestellt werden: Students und Cities.

Die Students-Tabelle verwendet Stadt-IDs als Fremdschlüssel und verweist auf die Cities-Tabelle für Städtenamen:

<code>Students:
| SID | SNAME | CITY |
|---|---|---|
| 1 | ABC | 11 |
| 2 | XYZ | 12 |
| 3 | ACX | 13 |

Cities:
| CID | CNAME |
|---|---|
| 11 | Chennai |
| 12 | Mumbai |
| 13 | Delhi |</code>
Nach dem Login kopieren

Das gewünschte Ausgabeformat ist ein einzelnes jqGrid, das Studenteninformationen mit den tatsächlichen Städtenamen anzeigt:

SID SNAME City
1 ABC Chennai
2 XYZ Mumbai
3 ACX Delhi
4 KHG Banglore
5 ADF Hyderabad
6 KKR Kolkatta

Um dies zu erreichen, ist die serverseitige Antwort so strukturiert, dass sie ein cityMap enthält, das Stadt-IDs in Namen übersetzt:

<code class="language-json">{
    "cityMap": {"11": "Chennai", "12": "Mumbai", "13": "Delhi"},
    "rows": [
        { "SID": "1",  "SNAME": "ABC", "CITY": "11" },
        { "SID": "2",  "SNAME": "XYZ", "CITY": "12" },
        { "SID": "3",  "SNAME": "ACX", "CITY": "13" },
        { "SID": "4",  "SNAME": "KHG", "CITY": "13" },
        { "SID": "5",  "SNAME": "ADF", "CITY": "12" },
        { "SID": "6",  "SNAME": "KKR", "CITY": "11" }
    ]
}</code>
Nach dem Login kopieren

Der clientseitige jqGrid-Code nutzt das Ereignis beforeProcessing, um Spalteneigenschaften mithilfe von cityMap dynamisch zu aktualisieren. Dadurch wird sichergestellt, dass die korrekten Städtenamen angezeigt werden. Die Option formatter: "select" wird hier nicht direkt verwendet, aber das Prinzip der dynamischen Aktualisierung der Spaltenoptionen zur Laufzeit bleibt dasselbe.

Hier ist eine vereinfachte Darstellung des clientseitigen Codes:

<code class="language-javascript">var filterToolbarOptions = {defaultSearch: "cn", stringResult: true, searchOperators: true},
    removeAnyOption = function ($form) { /* ... (function remains unchanged) ... */ },
    $grid = $("#list");

// ... (other code remains largely unchanged) ...

$grid.jqGrid({
    // ... (colModel remains largely unchanged) ...
    beforeProcessing: function (response) {
        // ... (logic to handle cityMap and update column properties) ...
    },
    jsonReader: { id: "SID"}
});
// ... (rest of the code remains largely unchanged) ...</code>
Nach dem Login kopieren

Die beforeProcessing-Funktion würde das cityMap aus der Antwort verwenden, um die numerischen Stadt-IDs in den rows-Daten durch die entsprechenden Städtenamen zu ersetzen, bevor jqGrid das Raster rendert. Dieser Ansatz vermeidet komplexe clientseitige Datenmanipulationen und hält die Logik prägnant.

Das obige ist der detaillierte Inhalt vonWie zeige ich Daten aus mehreren Tabellen in jqGrid mithilfe einer JSON-Antwort mit City Mapping an?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Quelle:php.cn
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Neueste Artikel des Autors
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage