如何在触发后使用getGridParam()获取总计数(" reloadGrid")

时间:2017-12-19 06:36:49

标签: javascript jquery jqgrid

我想在搜索后查看有关记录的总数。 但getGridParam("records")之后trigger("reloadGrid")没有运行。

这是我的代码。

goSearch : function() {
    var jsonObj = {};
    var $jqGrid = $("#jqGrid");

    if ($("#selectId").val() != "c") {
        jsonObj.serviceImplYn = $("#selectId").val();
    }

    $jqGrid.setGridParam({
        datatype        : "json",
        postData        : {"param" : JSON.stringify(jsonObj)},
        loadComplete    : function(data) {

            if (data.rows.length < 1) {
                alert("no data.");
            }
        }
    }).trigger("reloadGrid");

    //following line not running! first run value = 0, second = success
    var totalCnt = $jqGrid.getGridParam("records");

    console.log(totalCnt);
}

如何在第一次goSearch()运行中获得总计数?

1 个答案:

答案 0 :(得分:0)

您应该运行命令

var totalCnt = $jqGrid.getGridParam("records");

在loadComplete中发布

$jqGrid.setGridParam({
    datatype        : "json",
    postData        : {"param" : JSON.stringify(jsonObj)},
    loadComplete    : function(data) {

        if (data.rows.length < 1) {
            alert("no data.");
        }
        var totalCnt = $jqGrid.getGridParam("records");
    }
}).trigger("reloadGrid");

或在setTmeout函数中运行它,等待ajax请求加载数据,这样你就可以获得所需的信息。

setTimeout(function() {
    var totalCnt = $jqGrid.getGridParam("records");
}, 300);
相关问题