jqGrid menyediakan pemformat "pilih" untuk memaparkan data tidak langsung. Walau bagaimanapun, pemformat ini mempunyai had dari segi pilihan pengisian dinamik. Untuk mengatasi masalah ini, respons JSON daripada pelayan boleh dilanjutkan untuk memasukkan data tambahan yang digunakan untuk mengisi pilihan pemilihan.
Soalan asal:
Struktur data adalah seperti berikut:
SID | SNAME | CITY |
---|---|---|
1 | ABC | 11 |
2 | XYZ | 12 |
3 | ACX | 13 |
4 | KHG | 14 |
5 | ADF | 15 |
6 | KKR | 16 |
Jadual lain menyediakan nama bandar:
CID | CNAME |
---|---|
11 | Chennai |
12 | Mumbai |
13 | Delhi |
Matlamatnya ialah untuk memaparkan data sebagai:
SID | SNAME | CITY |
---|---|---|
1 | ABC | Chennai |
2 | XYZ | Mumbai |
3 | ACX | Delhi |
4 | KHG | Banglore |
5 | ADF | Hyderabad |
6 | KKR | Kolkatta |
Penyelesaian menggunakan respons JSON lanjutan:
Pelayan boleh melanjutkan respons JSON untuk memasukkan atribut "cityMap" yang memetakan ID bandar kepada nama bandar:
<code>{ "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>
Konfigurasi jqGrid:
<code>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>
Pendekatan ini membolehkan pilihan pemilihan diisi secara dinamik berdasarkan data daripada pelayan. Ia juga boleh digunakan untuk menetapkan pilihan lajur lain secara dinamik berdasarkan data pelayan.
Atas ialah kandungan terperinci Bagaimana untuk Mengisi Pilihan Pilih jqGrid Secara Dinamik Menggunakan Respons JSON Lanjutan?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!