如何解决未触发动态 ImageButton ImageClickEventHandler
我在网页上创建了一个按钮,单击该按钮时将从 Server.MapPath(...)
获取图像并将图像转换为 ImageButtons。单击这些 ImageButton 后,它们应该会出现在另一张放大的图像中。
图像(作为按钮)在网站上显示正确且可点击,但没有任何反应。
调试表明从未调用 imgBtnClick
方法。
问题是未触发 ImageClickEventHandler 中指定的方法。 任何关于为什么会发生这种情况的建议都非常感谢。
请在下面找到我的代码示例。
点击主按钮时执行的代码
protected void Logo_Click(object sender,ImageClickEventArgs e)
{
Logo.CssClass = "Highlight";
Images();
Panel_Photo.Visible = true;
}
Images 方法,其中为 Server.MapPath(...)
处的所有图像创建动态图像按钮
protected void Images()
{
foreach (string strFileName in Directory.GetFiles(Server.MapPath("~/images/Photos/Stuff")))
{
ImageButton imgBtn = new ImageButton();
FileInfo fileInfo = new FileInfo(strFileName);
imgBtn.ImageUrl = "~/images/Photos/Stuff/" + fileInfo.Name;
imgBtn.Width = Unit.Pixel(100);
imgBtn.Height = Unit.Pixel(100);
imgBtn.Style.Add("padding","5px");
imgBtn.Click += new ImageClickEventHandler(imgBtnClick);
imgBtn.OnClientClick = "return false";
Panel_Photo.Controls.Add(imgBtn);
}
}
最终方法应该在另一个图像中显示来自单击图像按钮的图像
void imgBtnClick(object sender,ImageClickEventArgs e)
{
LabelPhoto.Text = "test";
ImageClicked.ImageUrl = ((ImageButton)sender).ImageUrl;
}
标签和'ImageClicked'是在aspx页面<asp:Image ID="ImageClicked" runat="server"></asp:Image>
Panel_Photo
和 ImageClicked
在不同的 div 中,在网页上彼此相邻。
解决方法
@ademg 和@Greg 的评论都帮助我找到了解决方案。
我基本上不得不将整个 foreach
代码块放在 Page_Load 方法中并删除行 imgBtn.OnClientClick = "return false";
每当点击 imgBtn
(图像)时,网页都会跳转到顶部,但这是另一个需要研究的问题。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。