UserControl'sEventHandlerNotFired我正在动态加载一个UserControl到一个MultiView控件的View中。尽管UserControl添加了一个事件处理程序,但该事件永远不会触发。我在这里错过了什么?谢谢!包含ASPX页面:protectedoverridevoidOnPreRender(EventArgse){if(MultiView1.ActiveViewIndex==2)//如果选项卡被选中,加载控件{ControlPresenter=LoadControl("Presenter.ascx");(MultiView1.ActiveViewIndex.Views[2].Controls.Add(Presenter);}base.OnPreRender(e);}Presenter.ascx.csoverrideprotectedvoidOnInit(EventArgse){Retry.Click+=this.Retry_Click;//Thisisa.Net2.0projectbase.OnInit(e);}protectedvoidRetry_Click(objectsender,EventArgse){//Thisneverfires}我认为它没有触发,因为你在页面的预呈现事件中加载控件。在回发时,控件正在丢失,因为它没有视图状态。因此无法控制其事件。尝试在页面的init事件中加载控件。让我们知道发生了什么!回发事件处理在呈现之前完成,因此在您的页面中的情况不存在控件。生命周期事件按此顺序触发(跳过一些):PreRenderloadedinsideUnmount事件处理在Load和PreRender之间完成(如果某些事件改变了页面的呈现方式则有意义)...所以只是将加载Retry控件的代码移动到Load或Init。参考:Asp.NetPageLifecycleOverview一个控件必须是初始可见的才能进入OnPreRender事件。但也许你想让它不可见。一定要有EnableViewState=false;听起来好像在每个帖子之后都没有添加控件,我将在包含的aspx页面中提取if语句以查看是否可以解决问题...我假设Retry是一个按钮?以上为C#学习教程:UserControl的事件处理程序不触发分享的全部内容。如果对你有用,需要进一步了解C#学习教程,希望大家多多关注。本文收集自网络,不代表立场。如涉及侵权,请点击右侧联系管理员删除。如需转载请注明出处:
