0

我在网格上方放置了一行按钮,它们在其 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”并再次重新加载网格。

这很慢,用户必须不必要地等待网格加载。有没有办法在不实际应用的情况下获取某个查询的结果计数?

4

1 回答 1

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);
    }
});
于 2013-09-17T19:39:16.650 回答