Heim > Backend-Entwicklung > C++ > Wie kann ich indirekte Daten (z. B. Städtenamen aus IDs) in einem jqGrid anzeigen?

Wie kann ich indirekte Daten (z. B. Städtenamen aus IDs) in einem jqGrid anzeigen?

DDD
Freigeben: 2025-01-23 07:02:15
Original
179 Leute haben es durchsucht

How Can I Display Indirect Data (e.g., City Names from IDs) in a jqGrid?

jqGrid: Handhabung der indirekten Datenanzeige

Beim Umgang mit Tabellendaten müssen Sie häufig Daten aus verschiedenen Tabellen anzeigen. Wenn Sie beispielsweise eine Haupttabelle haben, die Studentennamen und Stadt-IDs enthält, und eine andere Tabelle, die Stadt-IDs tatsächlichen Stadtnamen zuordnet, möchten Sie möglicherweise Stadtnamen anstelle von Stadt-IDs im Raster anzeigen.

Einschränkungen der Direktverbindungsmethode

Ein gängiger Ansatz besteht darin, diese Tabellen basierend auf dem Stadt-ID-Feld zu verknüpfen. Dieser Ansatz wird jedoch unpraktisch, wenn Sie eine Klassenstruktur verwenden, die ein Stadt-ID-Feld anstelle des tatsächlichen Stadtnamens enthält.

Lösung: Verwenden Sie die Suchfunktion, um die ID zu dekodieren

Um dieses Problem zu lösen, stellt jqGrid die Funktion formatter: "select" bereit. Mit dieser Funktion können Sie eine Stadt-ID in den entsprechenden Stadtnamen umwandeln. Für diese Dekodierung ist jedoch eine Wertezuordnung erforderlich, und diese Zuordnung muss festgelegt werden, bevor jqGrid die Serverantwort verarbeitet.

Der empfohlene Ansatz besteht darin, Ihre Serverantwort um zusätzliche editoptions.value Attributdaten zu erweitern, die mithilfe des Formatierers „select“ für die Spalte verwendet werden. Diese erweiterte Antwort kann das folgende Format haben:

<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

In Ihren jqGrid-Einstellungen können Sie die Spalten wie folgt konfigurieren:

<code class="language-javascript">colModel: [
    {name: "SNAME", width: 250},
    {name: "CITY", width: 180, align: "center"}
],
beforeProcessing: function (response) {
    var $self = $(this);
    $self.jqGrid("setColProp", "CITY", {
        formatter: "select",
        edittype: "select",
        editoptions: {
            value: $.isPlainObject(response.cityMap) ? response.cityMap : []
        }
    });
},
jsonReader: { id: "SID"}</code>
Nach dem Login kopieren

Mit dieser Methode können Sie Spaltenoptionen basierend auf den vom Server empfangenen Daten dynamisch festlegen. Es bietet Ihnen außerdem die Flexibilität, komplexere Szenarien zu implementieren, z. B. die Angabe von Spracheinstellungen oder die Verarbeitung einer großen Anzahl von Elementen in einem Auswahlelement.

Das obige ist der detaillierte Inhalt vonWie kann ich indirekte Daten (z. B. Städtenamen aus IDs) in einem jqGrid anzeigen?. 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
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage