不会触发动态添加控件的事件。这发生在页面的create child controls事件中调用的函数中。
Button bb = new Button();
bb.Click += new EventHandler(bb_Click);
PlaceHolderQuestions.Controls.Add(bb);
答案 0 :(得分:1)
Asp.net网页有一个lifecyle。事件调度基于控制树完成。您的动态控件应该在控件树中。将控件添加到OnInit中的占位符或您的Onload页面或包含控件,将调度该事件。
答案 1 :(得分:0)
您需要将其置于较早的事件中。尝试将代码放在init事件处理程序中。
答案 2 :(得分:0)
确保在每个 Page_Load上动态创建此按钮。我常常把类似的代码放在:
中If Not Page.IsPostback()
...
End if
但是,由于Page_Load在按钮点击处理程序之前触发,如果在回发期间无法创建按钮,则按钮在其事件触发时不会“存在”。
答案 3 :(得分:0)
将代码放在先前的事件中不会解决问题。 即使你试图将你的代码放在Page_Load()中也不会解决问题。
根据页面的生命周期尝试覆盖OnLoad函数,并使用相同的ID重新创建并重新连接动态创建的控件。
protected override void OnLoad(EventArgs e)
{
Button bb = new Button() { ID = "myBtn" }
bb.Click += new EventHandler(bb_Click);
PlaceHolderQuestions.Controls.Add(bb);
base.OnLoad(e);
}
protected void Page_Load(object sender, EventArgs e)
{
}