【问题标题】:How to get total count using getGridParam() after trigger("reloadGrid")如何在触发器(“reloadGrid”)之后使用 getGridParam() 获取总计数
【发布时间】:2017-12-19 06:36:49
【问题描述】:

我想在搜索后检查记录的总数。 但是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() 时获得总数?

【问题讨论】:

  • 您当前的代码在启动 Ajax 请求之后执行var totalCnt = $jqGrid.getGridParam("records");,该请求从服务器加载数据,但数据加载之前。您只需将行var totalCnt = $jqGrid.getGridParam("records"); 移动到loadComplete 内,这将在数据加载之后 执行。

标签: javascript jquery jqgrid


【解决方案1】:

你应该运行命令

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

在加载完成你的帖子

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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-01-01
    • 2019-08-24
    • 2017-06-08
    • 2021-09-14
    相关资源
    最近更新 更多