正在做一个自定义的jqgrid和2种不同的方法给我不同的结果:
如果我执行“直接”输入,此方法将为我提供准确的记录总数(请参阅URL中的& Input = 1):
$('#1ASList').jqGrid({
url: DateFile+'Data.php?Load=AllianceStatus&Input=1',
datatype: 'json',
colModel: [{name:'A',width:64,align:'left'},{name:'C',width:25,align:'right',formatter:'integer'}],
altRows: true,
height: 102,
gridComplete: function(){ $('#1ASTtl').empty().html('[ '+$(this).jqGrid('getGridParam','records')+' ]'); }
});
这个方法会给我空白,第3个Grid会给我总结果,这是我不想要的。我希望每个Grid都能给我自己的结果:
for(var iAlliS = 0; iAlliS < 3; iAlliS++){
$('#'+iAlliS+'ASList').jqGrid({
url: DateFile+'Data.php?Load=AllianceStatus&Input='+iAlliS,
datatype: 'json',
colModel: [{name:'A',width:64,align:'left'},{name:'C',width:25,align:'right',formatter:'integer'}],
altRows: true,
height: 102,
gridComplete: function(){ $('#'+iAlliS+'ASTtl').empty().html('[ '+$(this).jqGrid('getGridParam','records')+' ]'); }
});
}
为什么两者都给我不同的结果?我在这里错过了什么? (我没有使用FooterData,所有自定义结果)
答案 0 :(得分:1)
好的,我们来试试吧。它不是使用gridComplete
事件jqgrid
使用loadComplete
,而是使用一个参数data
来获取服务器的完整数据。所以你可以改变你的代码:
for(var iAlliS = 0; iAlliS < 3; iAlliS++){
$('#'+iAlliS+'ASList').jqGrid({
url: DateFile+'Data.php?Load=AllianceStatus&Input='+iAlliS,
datatype: 'json',
colModel: [{name:'A',width:64,align:'left'},{name:'C',width:25,align:'right',formatter:'integer'}],
altRows: true,
height: 102,
loadComplete: function(data){ $('#'+iAlliS+'ASTtl').empty().html('[ '+data.records+' ]'); }
});
}
因此,从DOM
获取数据并直接从来自服务器的JSON
获取数据时,您不应再有任何问题。