簡體   English   中英

如何檢測頁面上的所有jqGrids是否已加載?

[英]How to detect if all jqGrids on a page have loaded?

我正在使用ASP.NET WebForms版本的jqGrid,但我確信相同的事件應該可用作標准網格。

我有一些頁面上有多個網格,它可能只有一個,或者可能是幾個。 我有一個打印按鈕,它將顯示10,000條記錄(顯示網格上的所有記錄),調整大小以適應A4紙張,觸發window.print()然后返回原始記錄計數,並調整網格大小回到100%。

缺少的部分是知道何時觸發window.print()因為我需要等待所有網格加載才能這樣做。

我嘗試過全局var allGridsLoaded = false; 然后使用Load_Complete事件和beforePageChange來設置var,但顯然每個網格重置var我不知道如何跟蹤它們?

Load_Complete我想我可以遍歷每個網格,但是什么是最干凈的方式來判斷它們是否已經加載?

我不確定我是否完全理解你的要求。 然而,在我看來,你需要

  • 獲取頁面上的網格總數
  • 為所有網格注冊“全局” Load_Complete
  • 在開始准備打印之前將計數器設置為網格總數,開始重新加載網格,在“全局” Load_Complete句柄和window.print()內減少計數器window.print()如果計數器的值為0)。

所以你真正需要的是上面列表中的兩件事。 每個網格都將基於一個空的<table>元素構建。 jqGrid為所有表添加"ui-jqgrid-btable"類。 所以你可以使用

$(".ui-jqgrid-btable")

獲取頁面上所有網格的jQuery包裝器。 $(".ui-jqgrid-btable").length是網格的數量。 要為所有網格注冊常見的“全局” Load_Complete ,您可以使用jqGridLoadComplete (或jqGridAfterLoadComplete )事件(請參閱文檔 ):

$(".ui-jqgrid-btable").bind("jqGridLoadComplete", function (e, data) {
    // ...
});

有關其他信息,請參閱答案

我希望您能夠以這種方式實現所有要求。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM