我有添加事件到ImageButton的问题。我必须根据DropDownList中的选定选项创建一组按钮。使用数据库数据成功创建按钮,但我无法附加OnClick功能。ASP.NET C#问题添加事件处理程序的ImageButton代码隐藏
创建的按钮必须共享同一个Handler。
protected void cmbServ_SelectedIndexChanged(object sender, EventArgs e) {
ServiceID = cmbServ.SelectedValue.ToString();
ServiceName = cmbServ.SelectedItem.ToString();
DataTable dtFirstTab = new DataTable();
dtFirstTab = mySQLConn.getTable(qryCarry); // LOAD DATA FROM DB
foreach (DataRow row in dtFirstTab.Rows) {
FTabBtn = "btn"+(Convert.ToInt32(row["SKU_Credito"])).ToString();
FTabIconURL = row["SKU_Icon"].ToString();
Panel dvFirstTab = new Panel();
dvFirstTab.CssClass = "col-xs-2";
ImageButton IB = new ImageButton();
IB.ID = FTabBtn;
IB.ImageUrl = FTabIconURL;
IB.Click += new ImageClickEventHandler(btnX_click); // <-- PROBLEM
dvFirstTab.Controls.Add(IB);
pnlIcons.Controls.Add(dvFirstTab); // pnlIcons exists in HTML
}
protected void btnX_click(object sender, ImageClickEventArgs e) {
string Obj = ((ImageButton)sender).ClientID;
Cantidad = Convert.ToInt32(Obj.Substring(3, (Obj.Length) - 3));
txtMonto.Text = "$" + Cantidad.ToString();
}
所有的按钮显示正常,但是当我点击他们,他们只是火了“提交”行动,像个没有的OnClick分配。
没有CodeBehid例如:
如果我加入HTML这一行(我删除ASP标签)
ImageButton ID="btn10" runat="server" ImageUrl="MontoLogo_10ST.png" OnClick="btnX_click"
它的工作如预期。
任何想法?非常感谢!
只是说IB.Click + = btnX_click。 btnx_click已经是一个事件处理程序,不需要创建另一个。 – cyanide