带按钮的Usercontrol - 当uc被动态添加到另一个页面时,我松开了按钮处理程序。
ie:我有1个带有1个按钮的usercontrol - 该按钮后面的代码中有一个事件处理程序。当我以编程方式将UserControl添加到页面时,按钮处理程序不会触发。想要一个简单的方法来解决这个问题。
通常当ive动态地向页面添加控件时,我必须在每个帖子上重新连接事件处理程序,但我希望因为该按钮包含在UserControl中并且uc是动态添加的我不会松动它 - 似乎不是这样 - 是否有更好的方法来做到这一点?我的usercontrol最终会有很多按钮,我不想每次都从动态添加用户控件的页面重新连接它们。
答案 0 :(得分:2)
您将使用Page.LoadControl在页面的OnInit事件处理程序中添加ascx控件(虽然我在Load事件处理程序中已经这样做但它可以工作,但是文档指定了OnInit)
您的用户控件(和页面)应为每次加载和回发连接其事件 例如 this.buttonID.Click + = new System.EventHandler(this.buttonID_Click);
如果你这样做那么它应该全部工作,如果没有,检查你的aspx / ascx标记为错误的字符,如额外的<某个地方可以破坏页面,但它仍然可以在浏览器中呈现。
答案 1 :(得分:0)
有时,当您向页面动态添加控件时,按钮事件处理程序会搞乱,因为控件的ID不同步。但我还需要看看你是如何动态加载控件的。
答案 2 :(得分:0)
当您动态添加任何控件时,您必须在Page_Init事件的主页中创建每次。
如果您这样做,请确保Click事件处理程序在UserControl的OnInit中连接。我想你不是每次都创建动态控件。
答案 3 :(得分:0)
您是否将其添加到ajax UpdatePanel内部?更新面板将捕获回发。