用于图像按钮的ASP.NET事件处理程序未触发

时间:2014-01-19 01:06:59

标签: c# asp.net imagebutton

我只是想将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方法中这样做。

2 个答案:

答案 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)
{

}