1

サーバーからフェッチされたデータをajax呼び出しますが、問題は応答をロードする必要があるがロードしjqgridないことです。vardataAjax = jData.responseText; dataAjax はサーバーからデータを受け取りました。

それの何がいけないの。助けてください

$(document).ready(function(){

    var resData = "";
    $(".btnLoad").click((function(){
        resData = $.ajax({
               type : "POST",
               url: "/AccountUI/DataFlow/AccountDetails.html",
               dataType: "json",
               success: functioin(jData){
                   var dataAjax  = jData.responseText;         
                    return dataAjax;
               }

            });
    });

    var gridData = new Array();
    gridData = resData;     
    jQuery("#ajgrid").jqGrid({ 
            datatype: "json", 
            height: 250, 
            colNames:['AccID','AccName', 'AccBranch'], 
            colModel:[ {name:'AccID',index:'AccID', width:60, sorttype:"int"}, 
                {name:'AccName',index:'AccName', width:90}, 
                {name:'AccBranch',index:'AccBranch', width:100}             
            ], 
            multiselect : true, 
            caption : "Account Grid" 
    }); 


    for(var i=0;i<=gridData.length;i++) 
       jQuery("#ajgrid").jqGrid('addRowData',i+1,gridData[i]);

});
4

1 に答える 1

1

意味の誤解がありますdatatype: "json"。オプションと連動しurlます。jqGrid は Ajax リクエストを作成し、グリッド内のサーバー データから返されたデータを埋めます。サーバー側のページングを実装していない場合はloadonce: true、グリッドにオプションを追加する必要があります。

したがって、必要なのは次のとおりであることを願っています。1)手動$.ajax呼び出しを削除します。2) を使用してグリッドを埋めるループを削除しますaddRowData。3) 次のオプションを jqGrid に追加します。

url: "/AccountUI/DataFlow/AccountDetails.html",
mtype: "POST",
loadonce: true,
gridview: true,
autoencode: true

に置き換えることをお勧めしheight: 250ますheight: "auto"jsonReader返されるデータの正確な形式に応じて、jqGrid がサーバーの応答を正しく解釈するのに役立つプロパティを追加する必要があります。おそらく、jqGrid は返されたデータの形式を自動的に検出できたはずです。

于 2013-07-11T09:43:29.057 に答える