我有一个带有许多控件的 WebForm,包括大量的网格。我在这些网格上添加了一些回调函数来刷新它们的 DataSource 并在每次刷新后更新公共静态类中的一些全局变量。
通常我会在PageLoadComplete
事件处理程序中添加一些方法调用,但之后会引发回调。我也尝试使用OnPrerender
,OnPrerenderComplete
和OnSaveStateComplete
方法覆盖,但这些似乎不适用于回调。(我不能使用OnUnload
覆盖,因为我需要使用Request
对象。)
这是实际问题:
我可以使用任何事件处理程序吗?或者我可以创建一个事件并在其他所有内容完成后提出它吗?
我希望它作为任何类型的每个回调/回发的最后一步执行(但在页面卸载之前,我仍然可以使用Response
andRequest
对象)。
网格是 DevExpress 的 ASPxGridViews。
更新
搜索了一段时间后,我发现该PreRender
事件是在 asp:UpdatePanels 的异步回发期间触发的,但在 DevExpress 的回调期间没有触发(这是正常行为)。
所以,真正有帮助的是找到/创建一个我可以使用的事件。我还在考虑在 PageLoad 执行期间从请求对象中获取我想要的数据,然后在 Unload 中使用它们。
每种方法的优缺点是什么?在做出决定之前我需要知道什么重要的事情,或者有什么我可能会忽略的事情吗?我担心使用第二个选项,因为我必须声明一些类变量,而且我觉得它们已经太多了。