asp:图像不在asp:HyperLink中显示

时间:2011-06-23 20:09:37

标签: c# asp.net

我有一个asp:图像在asp:HyperLink中没有显示。这是aspx。

<asp:HyperLink ID="hlSubmitSrf" runat="server" Target="_blank">
    <asp:Image runat="server" ID="imgSrf" />
</asp:HyperLink>      

这是代码隐藏。 Page_Init设置超链接文本,网址,图片网址和图片的替代文字。

        if (srf.Count > 0)
        {
            actionText = "View active SRF";
            hlSubmitSRF.Text = actionText;
            hlSubmitSRF.NavigateUrl = "SRF_Submit.aspx?SRF_ID=" + srf[0].Srf_id.ToString();                
            imageUrl = "images/Arrow_Right_Red.png";
        }
        else
        {
            actionText = "Submit SRF";
            hlSubmitSRF.Text = actionText;
            hlSubmitSRF.NavigateUrl = "SRF_Submit.aspx?APPID=" + app.Appid.ToString();                
            imageUrl = "images/Arrow_Right_Green.png";
        }

        imgSrf.ImageUrl = imageUrl;
        imgSrf.AlternateText = actionText;

如果我将图像移到asp:HyperLink之外,图像会显示,所以我知道路径有效。如果我把它保存在asp:HyperLink中,当我查看页面源时,图像甚至都不显示。

4 个答案:

答案 0 :(得分:1)

尝试以下方法:

hlSubmitSRF.ImageUrl = imageUrl;

在HyperLink上设置ImageUrl,不要在<asp:Image>内放置<asp:HyperLink>

<asp:HyperLink ID="hlSubmitSrf" runat="server" Target="_blank"></asp:HyperLink>     

    if (srf.Count > 0)
    {
        actionText = "View active SRF";
        hlSubmitSRF.Text = actionText;
        hlSubmitSRF.NavigateUrl = "SRF_Submit.aspx?SRF_ID=" + srf[0].Srf_id.ToString();                
        hlSubmitSRF.ImageUrl = "images/Arrow_Right_Red.png";
    }
    else
    {
        actionText = "Submit SRF";
        hlSubmitSRF.Text = actionText;
        hlSubmitSRF.NavigateUrl = "SRF_Submit.aspx?APPID=" + app.Appid.ToString();                
        hlSubmitSRF.ImageUrl = "images/Arrow_Right_Green.png";
    }

答案 1 :(得分:0)

您是否尝试过使用图像按钮?我没有在我面前的代码,但可以根据您使用超链接包装器的方式调整字段。

答案 2 :(得分:0)

尝试不在page_init中设置超链接文本。可能.Text属性会替换图像(或使其不可见)。超链接还有一个方便的.ImageUrl属性(只要你不使用url路由)。

HTH

答案 3 :(得分:0)

我不确定您是否可以在asp:HyperLink控件中同时拥有文本和图像,但是以下内容可以使用,例如:

HtmlImage imgSrf = new HtmlImage();
HtmlAnchor hlSubmitSRF = new HtmlAnchor();
HtmlGenericControl hlSubmitSRFText = new HtmlGenericControl("span");
if (srf.Count > 0) {
    actiontext = "View active SRF";
    hlSubmitSRF.HRef = "SRF_Submit.aspx?SRF_ID=" + srf(0).Srf_id.ToString();
    imgSrf.Src = "images/Arrow_Right_Red.png";
} else {
    actiontext = "Submit SRF";
    hlSubmitSRF.HRef = "SRF_Submit.aspx?APPID=" + app.Appid.ToString();
    imgSrf.Src = "images/Arrow_Right_Green.png";
}
imgSrf.Alt = actiontext;
hlSubmitSRF.Controls.Add(imgSrf);
hlSubmitSRFText.InnerHtml = actiontext;
hlSubmitSRF.Controls.Add(hlSubmitSRFText);
ParentControl.Controls.Add(hlSubmitSRF);