Rumah >pembangunan bahagian belakang >C++ >Bagaimana untuk Memaparkan Nama Bandar Daripada ID dalam Jqgrid Menggunakan Sambungan Sisi Pelayan?

Bagaimana untuk Memaparkan Nama Bandar Daripada ID dalam Jqgrid Menggunakan Sambungan Sisi Pelayan?

Susan Sarandon
Susan Sarandonasal
2025-01-23 06:57:11692semak imbas

How to Display City Names Instead of IDs in Jqgrid Using Server-Side Extensions?

Pelanjutan Sisi Pelayan Jqgrid: Mengendalikan Perhubungan Data Tidak Langsung

Panduan ini menunjukkan cara untuk memaparkan nama bandar deskriptif dan bukannya ID berangka dalam Jqgrid, memanfaatkan sambungan sisi pelayan untuk mengurus perhubungan data tidak langsung. Contoh melibatkan dua jadual: Students (SID, SNAME, CITY) dan Locations (CID, CNAME). Cabarannya terletak pada mempersembahkan CNAME (nama bandar) dalam lajur CITY Jqgrid, yang pada masa ini menyimpan CID (ID bandar). Gabungan pangkalan data langsung tidak sesuai kerana Student struktur data kelas.

Penyelesaian melibatkan menambah respons JSON pelayan untuk memasukkan maklumat pemetaan yang diperlukan. Kami memperkenalkan sifat colModelOptions untuk mengkonfigurasi lajur CITY secara dinamik:

<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>

Respons JSON ini menyediakan Jqgrid dengan data yang diperlukan untuk memaparkan nama bandar. Sifat editoptions.value mentakrifkan pemetaan antara ID dan nama.

Pengendali acara beforeProcessing Jqgrid menggunakan pilihan lajur ini secara dinamik:

<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>

Kod ini berulang melalui colModelOptions, mengemas kini sifat lajur CITY dalam Jqgrid. Konfigurasi dinamik ini memastikan bahawa nama bandar dipaparkan dan bukannya ID, menghasilkan grid yang lebih mesra pengguna dan intuitif. Kaedah ini mengurus perhubungan data tidak langsung dengan berkesan tanpa mengubah struktur pangkalan data atau menggunakan carian sisi klien yang tidak cekap.

Atas ialah kandungan terperinci Bagaimana untuk Memaparkan Nama Bandar Daripada ID dalam Jqgrid Menggunakan Sambungan Sisi Pelayan?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan:
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn