我只是想将onClick
事件添加到动态创建的ImageButton
中,它应该很简单,但出于某种原因,无论我做什么,我的点击事件都不会触发。
我创建了几个图像按钮并将它们添加到表格中。
这是我的代码:
TableCell cell= new TableCell();
ImageButton pic= new ImageButton();
pic.Click += new ImageClickEventHandler(pic_Click);
pic.ImageUrl = "~/Pictures/" + list[j];
pic.Width = 180;
pic.Height = 150;
pic.BorderStyle = BorderStyle.Inset;
pic.BorderColor = Color.DarkRed;
cell.Controls.Add(pic);
row.Cells.Add(cell);
我的方法如下:
public void pic_Click(object sender, ImageClickEventArgs e)
{
//codehere
}
它只是不起作用,图像按钮按计划创建并添加到表中,但OnClick
只是没有做它的工作..我也尝试添加这样的事件:
pic.Click += pic_Click;
但它是一样的。只是说,我没有在Page_Load
方法中这样做。
答案 0 :(得分:2)
您应该在Page的PreInit事件期间处理动态控件,如here所述。
你提到你没有在Page_Load中这样做,我假设你以后会这样做。如果您遵循上面的指导原则,您的按钮的点击事件处理程序将会运行。
答案 1 :(得分:0)
为什么不遵循这种格式? 的.aspx
<asp:ImageButton ID="ImageButton1" runat="server" Height="100px" ImageUrl="~/Images2/addtocartbutton.jpg" Width="250px" OnClick="ImageButton1_Click" />
.aspx.cs
protected void ImageButton1_Click(object sender, ImageClickEventArgs e)
{
}