Asp.net button/htmlbutton事件不会触发
本文关键字:事件 htmlbutton net button Asp | 更新日期: 2023-09-27 18:17:57
我知道它之前被问过,但我不能得到事件触发,即使我创建按钮和事件每OnInit。我正在做一个Sharepoint 2010 web部件和填写一个单选按钮列表的值,并添加一个提交按钮的web部件每次OnInit被调用。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。
在您的代码中,我可以看到您将相同的ID
分配给Panel
和submitBtn
。因此,由于Id重复,您的click事件不会触发。
尝试不同的IDs
面板和提交按钮,然后它应该工作良好!