2

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

即:我有 1 个用户控件和 1 个按钮 - 该按钮在后面的代码中有一个事件处理程序。当我以编程方式将 UserControl 添加到页面时,按钮处理程序不会触发。任何解决此问题的简单方法的想法。

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

4

4 回答 4

2

您将使用 Page.LoadControl 在页面的 OnInit 事件处理程序中添加 ascx 控件(尽管我已经在 Load 事件处理程序中这样做并且它有效,但文档指定了 OnInit)

您的用户控件(和页面)应该为每次加载和回发连接他们的事件,例如 this.buttonID.Click += new System.EventHandler(this.buttonID_Click);

如果您正在这样做,那么它应该都可以工作,如果没有,请检查您的 aspx/ascx 标记,因为错误的字符(例如某处的额外 < 可能会破坏页面,但它仍会在浏览器中呈现正常)。

于 2008-10-20T09:14:27.737 回答
0

您是否将其添加到 ajax UpdatePanel 内部?更新面板将捕获回发。

于 2008-10-21T13:31:54.953 回答
0

有时,当您将控件动态添加到页面时,按钮事件处理程序会因为控件的 ID 不同步而变得混乱。但是我再次需要看看你是如何动态加载控件的。

于 2008-10-20T08:18:08.490 回答
0

当您动态添加任何控件时,您必须每次在 Page_Init 事件的主机页面中创建它。
如果您这样做,请确保单击事件处理程序已连接到 UserControl 的 OnInit。我认为您不会每次都创建动态控件。

于 2008-10-20T08:46:32.863 回答