我想在搜索后检查有关记录的总数。
但是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()运行的总数?

最佳答案

您应该运行以下命令

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);

关于javascript - 如何在触发器(“reloadGrid”)之后使用getGridParam()获取总数,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/47881273/

10-16 17:44