Rumah > pembangunan bahagian belakang > C++ > Bagaimanakah Saya Boleh Memaparkan Data Tidak Langsung (cth., Nama Bandar daripada ID) dalam jqGrid?

Bagaimanakah Saya Boleh Memaparkan Data Tidak Langsung (cth., Nama Bandar daripada ID) dalam jqGrid?

DDD
Lepaskan: 2025-01-23 07:02:15
asal
218 orang telah melayarinya

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

jqGrid: Mengendalikan paparan data tidak langsung

Apabila berurusan dengan data jadual, anda selalunya perlu memaparkan data daripada jadual yang berbeza. Contohnya, jika anda mempunyai jadual utama yang mengandungi nama pelajar dan ID bandar, dan jadual lain yang memetakan ID bandar kepada nama bandar sebenar, anda mungkin mahu memaparkan nama bandar dalam grid dan bukannya ID bandar.

Had kaedah sambungan langsung

Pendekatan biasa adalah dengan menyertai jadual ini berdasarkan medan ID bandar. Walau bagaimanapun, pendekatan ini menjadi tidak praktikal jika anda menggunakan struktur kelas yang mengandungi medan ID bandar dan bukannya nama bandar sebenar.

Penyelesaian: Gunakan fungsi carian untuk menyahkod ID

Untuk menyelesaikan masalah ini, jqGrid menyediakan fungsi formatter: "select". Fungsi ini membolehkan anda menyahkod ID bandar ke dalam nama bandar yang sepadan. Walau bagaimanapun, ia memerlukan peta nilai untuk melaksanakan penyahkodan ini, dan peta ini perlu ditetapkan sebelum jqGrid memproses respons pelayan.

Pendekatan yang disyorkan adalah untuk melanjutkan respons pelayan anda dengan data atribut editoptions.value tambahan yang akan digunakan untuk lajur menggunakan pemformat "pilih". Respons lanjutan ini boleh dalam format berikut:

<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>
Salin selepas log masuk

Dalam tetapan jqGrid anda, anda boleh mengkonfigurasi lajur seperti berikut:

<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>
Salin selepas log masuk

Kaedah ini membolehkan anda menetapkan pilihan lajur secara dinamik berdasarkan data yang diterima daripada pelayan. Ia juga memberi anda fleksibiliti untuk melaksanakan senario yang lebih kompleks, seperti menentukan pilihan bahasa atau mengendalikan sejumlah besar item dalam elemen pemilihan.

Atas ialah kandungan terperinci Bagaimanakah Saya Boleh Memaparkan Data Tidak Langsung (cth., Nama Bandar daripada ID) dalam jqGrid?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

sumber:php.cn
Kenyataan Laman Web ini
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
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan