Jquery Jqgrid:在不重新加载网格的情况下获取筛选结果的计数
我在网格上方放置了一行按钮,用于在onclick事件中将某些过滤器应用于网格:Jquery Jqgrid:在不重新加载网格的情况下获取筛选结果的计数,jquery,jqgrid,Jquery,Jqgrid,我在网格上方放置了一行按钮,用于在onclick事件中将某些过滤器应用于网格: $('#myGrid').jqGrid("setGridParam",{ postData: {filters: myFilterArray}, search: true }).trigger("reloadGrid"); 我希望按钮显示页面加载时,在单击它们之前,相应查询将返回的行数(如:“待定:115”、“错误:238”等等)。 到目前为止,我找到的唯一方法是在$(document).ready
$('#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”,并重新加载网格
这相当慢,用户必须不必要地等待网格加载。有没有一种方法可以在不实际应用某个查询的情况下获取该查询的结果计数?那么您想要给定查询将返回的行数,而不需要实际退出网格,查询数据库,然后填充网格 我能想到的唯一方法是在创建网格之前执行一些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);
}
});
网格使用的数据类型是“jsonstring”,而“datastr”是由一个javabean(使用服务器端javascript插入)提供的。我最初的想法是,也许我可以通过在客户端查询已经加载的数据来避免对服务器的进一步调用——当然,只有在客户端查询不占用太多时间的情况下,这才有意义。再次查询后端数据库当然是一个显而易见的解决方案;使用相同的过滤器阵列获取结果计数,然后在单击按钮时对网格进行精确过滤,这将非常方便:-)