Jqgrid:无需重新加载网格即可计算过滤结果

时间:2013-09-16 13:03:29

标签: jquery jqgrid

我在网格上方放了一排按钮,在他们的onclick事件中将某些过滤器应用到网格中:

$('#myGrid').jqGrid("setGridParam",{
    postData: {filters: myFilterArray},
    search: true
}).trigger("reloadGrid");

我希望按钮显示相应查询在页面加载时返回的行数,然后单击它们(就像:“待处理:115”,“错误:238”等)。 到目前为止我发现这样做的唯一方法是在$(document).ready(function(){})中调用一个方法来应用每个按钮的过滤器,插入

的结果
$('#myGrid').jqGrid('getGridParam', 'records');
使用jquery的.html()方法

进入相应的按钮,再次使用postData:{filters:null}调用“setGridParam”并重新加载网格。

这非常慢,用户必须不必要地等待网格加载。有没有办法获得某个查询的结果计数而不实际应用它?

1 个答案:

答案 0 :(得分:0)

所以你想要给定查询返回的行数,而不是网格实际出去,查询数据库,然后填充网格?

我能想到的唯一方法是在创建网格之前执行一些AJAX调用,然后将查询返回的计数追加到按钮文本中。

$.ajax({
    url: 'countQuery.php', // not sure which language you are working in, but the file that will actually run the query and return the counts
    dataType: 'json',
    type: 'GET',
    success: function (data) {
        $("#buttonPending").text("Pending: " + data.pendingCount);
        $("#buttonError").text("Error: " + data.errorCount);
    }
});