0

在我的 asp.net 页面代码隐藏中,我正在动态创建一个按钮并向其添加一个事件处理程序。但是当我在按钮单击事件(我在代码隐藏中添加)设置断点时,它没有命中。知道为什么吗?

我的代码在这里

ASP.NET 页面

<form runat="Server" id="frm1">
   <div id="divPaymentOptions" runat="Server"> </div>
</form>  

代码隐藏 (C#)

 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 方法。不知道为什么它没有出现在我的按钮点击事件中。

有任何想法吗?

4

1 回答 1

3

回发期间该按钮不存在。如果你动态地向页面添加一个控件,你必须每次都这样做。取出支票!IsPostBack,它应该可以工作。

于 2010-10-23T16:36:57.357 回答