我正在使用jqGrid的ASP.NET WebForms版本,但是我确定相同的事件应该可用作为标准网格。如何检测页面上的所有jqGrids是否已加载?
我有一些页面上有多个网格,它可能只是一个,或可能是几个。我有一个打印按钮,它将显示10,000条记录(显示网格上的所有记录),调整其大小以适应A4纸,激发window.print()
,然后返回到原始记录计数,并将网格重新调整为100% 。
缺少的部分是知道何时开火window.print()
,因为我需要等待所有网格加载之前,这样做。
我试过有一个全球性的var allGridsLoaded = false;
然后使用Load_Complete
事件和beforePageChange
设置VAR,但显然与每个网格重置VAR我不知道如何跟踪他们呢?
在Load_Complete
我在想我可以遍历每个网格,但是最清楚的方法是告诉他们是否已经加载了?
作为一个建议,如果你将从绑定到“jqGridLoadComplete”的匿名函数中调用全局函数'Load_Complete',我会建议计数器在匿名函数中递减,并且只在调用全局函数时调用一次计数器为0.换句话说,你可以有一个函数'All_Load_Complete'。如果函数调用次数较少,则会对速度产生积极影响(例如,见http://www.slideshare.net/madrobby/extreme-javascript-performance幻灯片13-18)。 – 2014-02-13 12:31:08
@Tom:对不起,但我不能跟着你。什么“'All_Load_Complete'功能”你的意思是?我建议减少''jqGridLoadComplete''事件处理程序中的计数器。那么你的建议是什么? – Oleg
这一定是我的不好。我认为你是在建议在阅读答案中的第三个重点的全局函数中减少计数器。 – 2014-02-13 13:04:46