在我的Web应用程序中,我在page_loadComplete事件中加载用户控件。这工作正常,但是当在用户控件中单击按钮时,从不触发click事件。这与页面生命周期有关吗?那个按钮单击(UI)事件发生在LoadComplete事件之前?
答案 0 :(得分:3)
在事件处理程序触发之前,您需要确保再次订阅按钮的click事件。 LoadComplete在控制事件发生后发生。作为参考,ASP.NET Page Life Cycle Overview提供了一个非常好的摘要。
段:
您还需要确保动态加载的控件最终都在同一个地方,因此可以将viewstate和controlstate重新应用到与回发之前相同的层次结构。
基本上,您需要在每个回发上加载所有动态控件。
这是一个有同样问题的人,以及其中一些问题的解决方案:ASP.NET dynamic controls
答案 1 :(得分:1)
实际情况是,当您在事件发生之前单击按钮时,会在页面生命周期中首先触发LoadCoplete事件并再次创建相同的控件,此处您的事件将丢失。
答案 2 :(得分:0)
ASP.NET页面中的事件处理在验证之后和渲染阶段之前发生。验证阶段发生在Load。
之后LoadComplete发生在Control事件之后和RreRender事件之前。