如果ImageButton没有Image,ImageButton事件不会触发?

时间:2009-03-24 20:14:28

标签: c# asp.net

如果ImageButton事件找不到图像,它是否会触发正常行为。例如,假设我有以下代码:

imageLink = new ImageButton();
imageLink.ImageUrl = "~/images/arrow.png";

如果页面找到arrow.png,则图片点击有效,但如果找不到,则无效。

这些图像是动态创建的,并且分配了CommandName,CommandArgument和Click Handler。

void imageLink_Click(object sender, ImageClickEventArgs e)
{
    ImageButton button = (ImageButton)sender;
    Detail oDetail = new Detail();

    switch(button.CommandName)
    {
        case "Band":
             oDetail.Band  = button.CommandArgument;
                break;
            case "State":
                oDetail.State = button.CommandArgument;
                break;
        }                    

        Session["Page2"] = oDetail;

        Response.Redirect("~/Page2.aspx");
    }

3 个答案:

答案 0 :(得分:0)

不,这不正常。我刚刚测试过,即使你从未设置ImageUrl,按钮仍然会回发。您确定该问题与事件处理无关吗?

答案 1 :(得分:0)

在某些情况下,它会发生 没有图像,图像按钮事件有时不会触发 谁知道这个问题背后的确切原因, 请在这里发帖

答案 2 :(得分:0)

是的,没错。如果ImageButton没有声明ImageUrl,它将不会触发onclick事件。它会导致回发,但事件不会被触发。

此代码不会触发事件

<asp:ImageButton ID="testImgBtn" ImageUrl="" runat="server" onclick="testImgBtn_Click" />

虽然这样做:

<asp:ImageButton ID="testImgBtn" ImageUrl="http://www.google.it/intl/en_en/images/logo.gif" runat="server" onclick="testImgBtn_Click" />