带按钮的Usercontrol - 当uc被动态添加到另一个页面时

时间:2008-10-20 00:43:30

标签: c# asp.net dynamic

带按钮的Usercontrol - 当uc被动态添加到另一个页面时,我松开了按钮处理程序。

ie:我有1个带有1个按钮的usercontrol - 该按钮后面的代码中有一个事件处理程序。当我以编程方式将UserControl添加到页面时,按钮处理程序不会触发。想要一个简单的方法来解决这个问题。

通常当ive动态地向页面添加控件时,我必须在每个帖子上重新连接事件处理程序,但我希望因为该按钮包含在UserControl中并且uc是动态添加的我不会松动它 - 似乎不是这样 - 是否有更好的方法来做到这一点?我的usercontrol最终会有很多按钮,我不想每次都从动态添加用户控件的页面重新连接它们。

4 个答案:

答案 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内部?更新面板将捕获回发。