2014-01-19 130 views
1

我只是试图添加onClick事件动态创建ImageButton,它应该很容易,但由于某种原因,我的点击事件不会触发,无论我做什么。ASP.NET事件处理程序的图像按钮没有触发

我创建了几个图像按钮,并将它们添加到表中。

这是我对于该位码:

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

页的PreInit事件中你应该照顾你的动态控制,因为它说here

你提到你没有在Page_Load中做这件事,我假设你在稍后的时间做。如果你遵循上面的指南,你的按钮的点击事件处理程序将运行。

+0

我会检查一个,如果它的工作,如果你能帮我多一点,我读你给我的链接,但我标记你的答案 –

+0

不太明白我应该做什么?我的所有动态控件都是根据用户选择创建的,我如何在PreInit事件中重新创建它们? –

+0

没关系,我想我明白了,谢谢你的帮助 –

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

} 
+0

因为我从代码创建图像按钮... –

相关问题