[英]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.