gpt4 book ai didi

javascript - 如何检测页面上的所有jqGrid是否已加载?

转载 作者:行者123 更新时间:2023-12-02 17:46:08 24 4
gpt4 key购买 nike

我正在使用 jqGrid 的 ASP.NET WebForms 版本,但我确信相同的事件应该与标准网格一样可用。

我有一些页面上有多个网格,可能只有一个,也可能有多个。我有一个打印按钮,它将显示 10,000 条记录(以显示网格上的所有记录),调整其大小以适合 A4 纸,触发 window.print(),然后返回到原始状态记录计数,并将网格大小调整回 100%。

缺少的部分是知道何时触发window.print(),因为我需要等待所有网格加载后再执行此操作。

我尝试使用全局 var allGridsLoaded = false;,然后使用 Load_Complete 事件和 beforePageChange 设置 var,但是显然,每个网格都会重置变量,我不确定如何跟踪它们?

Load_Complete中,我想我可以循环遍历每个网格,但是判断它们是否已加载的最干净的方法是什么?

最佳答案

我不确定我是否完全理解您的要求。尽管如此,在我看来你需要

  • 获取页面上的网格总数
  • 注册“全局”Load_Complete对于所有网格
  • 在开始准备打印之前将计数器设置为网格总数,开始重新加载网格,递减“global”内的计数器 Load_Complete handle 和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了解更多信息。

我希望您能够以这种方式实现您的所有要求。

关于javascript - 如何检测页面上的所有jqGrid是否已加载?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21752604/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com