Apabila menggunakan jqGrid untuk mengisi menu lungsur turun secara dinamik untuk pengeditan data, item "tidak ditentukan" tambahan akan muncul dalam menu lungsur. Isu ini berpunca daripada format rentetan yang digunakan untuk mengisi nilai menu lungsur turun.
jqGrid memerlukan format nilai menu lungsur adalah seperti berikut:
<code>value: "FE:FedEx; IN:InTime; TN:TNT"</code>
Walau bagaimanapun, kod dalam tindakan ASP.NET MVC menjana rentetan menggunakan sb.ToString(), yang menambah petikan yang tidak perlu di sekitar nilai:
<code>value: ""ID: One;ID: Two;ID: Three;ID: Four;ID: Five;""</code>
Kaedah 1: Gunakan dataUrl
Untuk menyelesaikan masalah ini, adalah disyorkan untuk menggunakan atribut dataUrl bagi pilihan edit atau pilihan carian dalam jqGrid. Ini membolehkan anda menentukan URL yang mengembalikan hasil dalam format yang diingini:
<code>{ name: 'destinations', ditable: true, edittype:'select', editoptions: { dataUrl:'<%= Url.Action("GetDestinationList","Home") %>' } }</code>
Dalam pengawal, operasi GetDestinationList harus mengembalikan tatasusunan JSON yang mengandungi nilai menu lungsur:
<code>public JsonResult GetDestinationList() { List<string> allDestinations = GetAllDestinations(); Json(allDestinations, JsonRequestBehavior.AllowGet); }</code>
Kaedah 2: Gunakan fungsi buildSelect
Jika dataUrl tidak tersedia, anda boleh menggunakan fungsi buildSelect untuk memformat nilai menu lungsur:
<code class="language-javascript"> buildSelect: function(data) { var s = ''; if (response && response.length) { for (var i = 0, l=response.length; i<l ; i++) { var ri = response[i]; s += ''+ri+''; } } return s + ""; }</code>
Fungsi ini menerima data tindak balas daripada pelayan dan mengembalikan rentetan dalam format yang diperlukan.
Atas ialah kandungan terperinci Mengapa Permintaan ASP.NET MVC $.post Saya Mengembalikan Rentetan Diformat Secara Tidak Dijangka untuk Dropdown jqGrid?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!