jqGrid - getGridParam / getCol问题(单数)

时间:2014-12-30 00:32:06

标签: jquery jqgrid

正在做一个自定义的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,所有自定义结果)

1 个答案:

答案 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获取数据时,您不应再有任何问题。