[英]asp.net button/htmlbutton event will not fire
我知道它之前已被問過,但即使我在每個OnInit上創建按鈕和事件,我也無法觸發事件。 我正在做一個Sharepoint 2010 Web部件並用值填充radiobuttonlist,並在每次調用OnInit時向Web部件添加一個提交按鈕。 Page_Load方法為空。 我也嘗試將paintQnA調用放在一個覆蓋的CreateChildControls中,結果相同。
protected override void OnInit(EventArgs e)
{
base.OnInit(e);
...//Get data needed to create gui
paintQnA(dr, dt, currentRow);
}
void paintQnA(DataRow dr, DataTable dt, int currentRow)
{
Panel p = new Panel();
p.ID = currentRow.ToString();
Label lbl= new Label();
lbl.Text = dr["Title"].ToString();
RadioButtonList rbl = new RadioButtonList();
rbl.ID = currentRow.ToString() + "1";
HtmlButton submitBtn = new HtmlButton();
submitBtn.ID = currentRow.ToString();
submitBtn.InnerText = "Click";
submitBtn.ServerClick += new EventHandler(submitBtn_Click);
...//fill the radiobuttonlist with data
this.Controls.Add(p);
p.Controls.Add(lbl);
p.Controls.Add(rbl);
p.Controls.Add(submitBtn);
UpdatePanel1.ContentTemplateContainer.Controls.Add(p);
}
void submitBtn_Click(object sender, EventArgs e)
{
...//Should display another dynamically created panel but is never reached.
}
發現錯誤:
p.ID = currentRow.ToString();
submitBtn.ID = currentRow.ToString();
它們具有相同的ID ...它們不能具有相同的ID。
在您的代碼中,我可以看到您為Panel
和submitBtn
分配了相同的ID
。 因此,由於重復的ID,您的點擊事件不會被觸發。
為Panel和Submitbutton嘗試不同的IDs
然后它應該工作正常!
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.