在我的asp.net页面代码隐藏中,我正在动态创建一个按钮并为其添加一个事件处理程序。但是当我在按钮点击事件(我在代码隐藏中添加)设置断点时,它没有击中。知道为什么吗?
我的代码在这里
<form runat="Server" id="frm1">
<div id="divPaymentOptions" runat="Server"> </div>
</form>
protected void Page_Load(object sender, EventArgs e)
{
if (!IsPostBack)
{
LoadControl();
}
}
private void LoadControl()
{
Button objTempBtn = new Button();
objTempBtn.ID = "myDynamicBtn";
objTempBtn.Text = "Clich me";
objTempBtn.Click+=new EventHandler(objTempBtn_Click);
this.divPaymentOptions.Controls.Add(objTempBtn);
}
private void objTempBtn_Click(object sender, EventArgs e)
{
string strMsg="want to do something here";
}
我在divPaymentOptions上放了一个断点。但是当我跑的时候没有碰到它。但是当我点击按钮时会发生回发。它涉及PageLoad方法。不知道为什么它没有进入我的按钮点击事件。
有什么想法吗?
答案 0 :(得分:3)
回发期间按钮不存在。如果您动态地向页面添加控件,则必须每次都执行此操作。取出!IsPostBack
的支票,它应该有效。