2011-11-30 131 views
0

我正在创建动态控件,其中一个控件是一个按钮。 我用下面的代码来添加按钮控件。动态创建的按钮不触发单击事件

Button btnContinue = new Button(); 
btnContinue.Attributes.Add("class", "button"); 
btnContinue.ID = "btnContinue"; 
btnContinue.Text = "Continue"; 
btnContinue.CausesValidation = false; 
btnContinue.Click += new EventHandler(btnContinue_Click);     
lineAdd.Controls.Add(btnContinue); 

并按钮单击事件如下。

protected void btnContinue_Click(object sender, EventArgs e) 
{ 
    ... 
} 

此事件未触发。任何想法为什么这不是事件发生。如果我错了,请纠正我。

在此先感谢。

+0

你可以发布围绕你的按钮添加代码的代码吗?你在页面生命周期中的哪些地方添加它? – Chris

+0

感谢您的回复。我正在页面中创建按钮加载保护无效Page_Load(对象发件人,EventArgs e) if(!IsPostBack)....................... .................添加其他控件和按钮.......................... ...........................} { – SunVigna

+0

看看BritishDevelopers的答案,看起来是对的。在“Page_Load”中创建按钮不会创建按钮并正确链接事件。确保你的代码放入'Page_Init(object sender,EventArgs e)'方法中,如果它不存在于你的页面中,就创建它。 (你应该能够使用覆盖) – Chris

回答

2

确保您在页面生命周期中足够早地创建该按钮。看看它创建的页面的OnInit。

这是因为事件处理事件发生在Page Init之后。当然,按钮必须在事件可以被检测到之前被创建。网页表单的乐趣...

+0

我在pageLoad中创建按钮... – SunVigna

0

尝试将UseSubmitBehavior属性设置为True。

1

您必须在OnInit()方法内初始化动态创建的控件(请参阅MS kb post),否则页面将不会考虑它。 请注意,控件必须在由控件本身引起的回发期间创建。

相关问题