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: 250height: "auto". 取决于返回数据的确切格式,您可能需要添加jsonReader有助于 jqGrid 正确解释服务器响应的属性。可能jqGrid可以自动检测返回数据的格式。

于 2013-07-11T09:43:29.057 回答