在我的 Web 应用程序中,我在 page_loadComplete 事件中加载用户控件。这很好用,但是当在用户控件中单击按钮时,永远不会触发 click 事件。这与页面生命周期有关吗?该按钮单击 (UI) 事件发生在 LoadComplete 事件之前吗?
问问题
4060 次
3 回答
3
在事件处理程序触发之前,您需要确保再次订阅按钮的单击事件。LoadComplete 发生在控制事件之后。作为参考,ASP.NET 页面生命周期概述给出了一个很好的总结。
片段:
- ...
- 加载
- 控制事件
- 加载完成
- 预渲染
- ...
您还需要确保您动态加载的所有控件最终都位于同一个位置,以便可以将 viewstate 和 controlstate 重新应用到与回发之前相同的层次结构。
基本上,您需要在每次回发时加载所有动态控件。
这是一个有同样问题的人,以及其中一些的解决方案:ASP.NET 动态控件
于 2009-10-21T07:31:21.617 回答
1
实际上,您的情况是,当您单击按钮时,在事件引发之前,LoadCoplete 事件首先在页面生命周期中触发,并且再次创建相同的控件,并且您的事件丢失了。
于 2009-10-21T07:27:09.610 回答
0
ASP.NET 页面中的事件处理发生在验证阶段之后和渲染阶段之前。验证阶段发生在加载之后。
LoadComplete 发生在 Control 事件之后和 RreRender 事件之前。
于 2009-10-21T07:24:07.840 回答