首頁 > 後端開發 > C++ > 如何正確格式化來自 ASP.NET MVC $.post 呼叫的 jqGrid 下拉回應?

如何正確格式化來自 ASP.NET MVC $.post 呼叫的 jqGrid 下拉回應?

Susan Sarandon
發布: 2025-01-11 09:07:41
原創
956 人瀏覽過

How to Properly Format jqGrid Dropdown Responses from ASP.NET MVC $.post Calls?

ASP.NET MVC與jqGrid下拉清單資料格式化:解決$.post呼叫問題

在ASP.NET MVC中,您可以動態填入jqGrid的編輯資料下拉清單。然而,您可能會遇到下拉清單中出現「undefined」值的問題。這可能是由於jqGrid的資料格式化所導致的。

問題概述

使用jQuery進行$.post呼叫時,從控制器接收到的資料可能包含雙引號。這會導致jqGrid出現問題,因為它期望下拉清單的值採用「value:value;...」的格式。

解決方案:使用ContentResult

為了解決這個問題,請使用ContentResult方法取代Json。 ContentResult的語法如下:

<code class="language-csharp">return Content(sb.ToString());</code>
登入後複製

替代方案:使用dataUrl和buildSelect

另一個選擇是在jqGrid的editoptions或searchoptions中使用dataUrl和buildSelect屬性。使用dataUrl,您可以提供一個URL,該URL傳回jqGrid的select元素所需格式的資料。 buildSelect是自訂函數,它接收資料並傳回select元素的HTML。

程式碼範例

以下是如何使用dataUrl和buildSelect的範例:

控制器操作:

<code class="language-csharp">public JsonResult GetDestinationList() {
    List<string> allDestinations = GetAllDestinations();
    return Json(allDestinations, JsonRequestBehavior.AllowGet);
}</code>
登入後複製

jqGrid選項:

<code class="language-javascript">{ name: 'destinations', editable: true, edittype:'select',
  editoptions: { dataUrl: '/YourController/GetDestinationList', buildSelect: function(data){
    var s = '<select>';
    if (data && data.length) {
        for (var i = 0, l=data.length; i<l ; i++) {
            var ri = data[i];
            s += '<option value="' + ri + '">' + ri + '</option>';
        }
    }
    s += '</select>';
    return s;
  }}
}</code>
登入後複製

總結

透過使用ContentResult方法或dataUrl和buildSelect屬性,您可以為來自ASP.NET MVC中$.post呼叫的jqGrid下拉清單值提供正確的資料格式。

以上是如何正確格式化來自 ASP.NET MVC $.post 呼叫的 jqGrid 下拉回應?的詳細內容。更多資訊請關注PHP中文網其他相關文章!

來源:php.cn
本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
作者最新文章
熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板