「労働者が自分の仕事をうまくやりたいなら、まず自分の道具を研ぎ澄まさなければなりません。」 - 孔子、「論語。陸霊公」
表紙 > プログラミング > なぜ私のASP.NET MVC JQGridドロップダウンが「未定義の」価値を示すのですか?

なぜ私のASP.NET MVC JQGridドロップダウンが「未定義の」価値を示すのですか?

2025-03-23に投稿されました
ブラウズ:889

Why Does My ASP.NET MVC jqGrid Dropdown Show an

ASP.NET MVC JQGRIDドロップダウンの「未定義の」値の解決

データ編集中にJQGridドロップダウンを動的に登録すると、望ましくない「未定義の」値が頻繁に表示されます。これは、JQGridが期待するデータ構造とデータ提供方法との間の矛盾に起因します。

正しいjqgridデータ形式:

ドロップダウンの値の理想的な形式は次のとおりです。 現在の方法の問題:

現在のアプローチでは、jqueryの $。ajax()

を使用してasp.net mvcを使用してドロップダウンデータを取得します。 a

stringbuilder は、取得したデータをjqgridの形式に一致させるように操作しますが、追加の「未定義」のエントリは持続します。 デバッグ調査結果:

firebugのデバッグは、 sb.tostring()

によって導入された追加の引用符が原因であることを示しています。 JQGridは独自の引用を追加し、2倍になった引用と「未定義」の問題につながります。

優れたソリューション:

dataurl

および buildSelect を使用してください。

value

プロパティを直接操作する代わりに、より堅牢なソリューションは、jqgridの dataurl および buildselect プロパティを使用することを伴います。 これらにより、カスタマイズされたデータの取得とフォーマットが可能になります。 dataurl action:

public jsonresult getDestinitionList(){ リスト alldestinations = getalldestinations(); return json(alldestinations、jsonrequestbehavior.allowget); }

public JsonResult GetDestinationList() {
    List allDestinations = GetAllDestinations();
    return Json(allDestinations, JsonRequestBehavior.AllowGet);
}

buildselect:function(data){ var s = ''; if(data && data.length){ for(var i = 0、l = data.length; i

更新
buildSelect: function(data) {
    var s = '';
    if (data && data.length) {
        for (var i = 0, l = data.length; i 

{ 名前:「目的地」、 編集可能:本当、 edittype: 'select'、 編集:{ dataurl: '/yourcontroller/getDestinitionList'、//コントローラーアクションパスに置き換えます BuildSelect:function(data){ // ...(上からbuildSelect関数)... } } }

重要な注意:
{
    name: 'destinations',
    editable: true,
    edittype: 'select',
    editoptions: {
        dataUrl: '/YourController/GetDestinationList', // Replace with your controller action path
        buildSelect: function(data) {
            // ... (buildSelect function from above) ...
        }
    }
}

json(alldestinations); なしで jsonrequestbehavior.allowget

を使用できますが、
    ajaxselectoptions:{type: "post"}
  • を追加する必要があります。 newer jqgridバージョンでは、 buildselect $ この改訂されたアプローチは、JQGridドロップダウンを管理するためのよりクリーンで効率的で、エラーが発生しない方法を提供し、「未定義の」価値の問題を排除します。
  • /yourcontroller/getDestinationList
  • をコントローラーアクションへの実際のパスに置き換えることを忘れないでください。
最新のチュートリアル もっと>

免責事項: 提供されるすべてのリソースの一部はインターネットからのものです。お客様の著作権またはその他の権利および利益の侵害がある場合は、詳細な理由を説明し、著作権または権利および利益の証拠を提出して、電子メール [email protected] に送信してください。 できるだけ早く対応させていただきます。

Copyright© 2022 湘ICP备2022001581号-3