在基于某些条件动态创建的表上,我已动态添加了图像按钮。并行我想为此图像按钮单击添加事件但单击事件不会被触发。这是我的代码片段。
private void createTable()
{
TableRow tableRow = new TableRow();
TableCell ImageCell = new TableCell();
ImageButton imgBtndeleteAttr = new ImageButton();
imgBtndeleteAttr.ID = "imgbtn_" + i.ToString() + j.ToString();
imgBtndeleteAttr.CssClass = "deleteDynamic";
imgBtndeleteAttr.OnClientClick = "javascript:return confirm('Do you want to delete this Attribute?');";
imgBtndeleteAttr.Click += new System.Web.UI.ImageClickEventHandler(imgBtndeleteAttr_Click);
ImageCell.Controls.Add(imgBtndeleteAttr);
tableRow.Cells.Add(ImageCell);
}
这是事件
protected void imgBtndeleteAttr_Click(object sender, ImageClickEventArgs e)
{
ClientScript.RegisterClientScriptBlock(this.GetType(), "lnk",
"<script type = 'text/javascript'>alert('Image button Clicked');</script>");
}
答案 0 :(得分:1)
在asp中使用动态控件是个坏主意。必须在回发时重新创建控件。因此,如果您动态创建按钮并单击它,则会发生回发并触发事件,但由于回发,触发事件的按钮将被销毁,并且已撤消引发的事件。