我使用的是ASP.NET WebForms版本的jqGrid,但我确信相同的事件应该可用作标准网格。
我有一些页面上有多个网格,它可能只有一个,或者可能是几个。我有一个打印按钮,将显示10,000条记录(显示网格上的所有记录),调整大小以适应A4纸张,触发window.print()
,然后返回到原始记录计数,并调整网格大小回到100%。
缺少的部分是知道何时触发window.print()
,因为我需要等待所有网格加载之前。
我尝试过全局var allGridsLoaded = false;
,然后使用Load_Complete
事件和beforePageChange
来设置var,但显然每个网格都会重置变量I'我不确定如何跟踪它们?
在Load_Complete
我认为我可以遍历每个网格,但是最简单的方法是判断他们是否已经加载了?
答案 0 :(得分:2)
我不确定我是否完全理解您的要求。不过在我看来,你需要
Load_Complete
Load_Complete
句柄内减少计数器,如果计数器具有值,则递减计数器window.print()
0 所以你真正需要的是上面列表中的两件事。每个网格都将基于空<table>
元素构建。 jqGrid将"ui-jqgrid-btable"
类添加到所有表中。所以你可以使用
$(".ui-jqgrid-btable")
获取页面上所有网格的jQuery包装器。 $(".ui-jqgrid-btable").length
是网格的数量。要为所有网格注册常见的“全局”Load_Complete
,您可以使用jqGridLoadComplete
(或jqGridAfterLoadComplete
)事件(请参阅the documentation):
$(".ui-jqgrid-btable").bind("jqGridLoadComplete", function (e, data) {
// ...
});
有关其他信息,请参阅the answer。
我希望你能够以这种方式实现所有要求。