通过ajax
从服务器获取的呼叫数据,但问题是该响应
应加载jqgrid
但不加载。在var dataAjax = 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]);
});
答案 0 :(得分: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可以自动检测返回数据的格式。