C# asp:图像未显示在asp:超链接中

C# asp:图像未显示在asp:超链接中,c#,asp.net,C#,Asp.net,我在一个asp:HyperLink中有一个asp:Image,但没有显示。这是aspx <asp:HyperLink ID="hlSubmitSrf" runat="server" Target="_blank"> <asp:Image runat="server" ID="imgSrf" /> </asp:HyperLink> 如果我将图像移到asp:HyperLink之外,则会显示图像,这样我就知道路径是有效的。如果我将其保存在asp

我在一个asp:HyperLink中有一个asp:Image,但没有显示。这是aspx

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

如果我将图像移到asp:HyperLink之外,则会显示图像,这样我就知道路径是有效的。如果我将其保存在asp:HyperLink中,则当我查看页面源时,图像甚至不会显示。

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

请尝试以下操作:

hlSubmitSRF.ImageUrl = imageUrl;
在超链接上设置ImageUrl,不要在
中放置


如果(srf.Count>0)
{
actionText=“查看活动SRF”;
hlSubmitSRF.Text=操作文本;
hlSubmitSRF.NavigateUrl=“SRF_Submit.aspx?SRF_ID=“+SRF[0].SRF_ID.ToString();
hlSubmitSRF.ImageUrl=“images/Arrow\u Right\u Red.png”;
}
其他的
{
actionText=“提交SRF”;
hlSubmitSRF.Text=操作文本;
hlSubmitSRF.NavigateUrl=“SRF_Submit.aspx?APPID=“+app.APPID.ToString();
hlSubmitSRF.ImageUrl=“images/Arrow\u Right\u Green.png”;
}

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


HTH

我不确定您是否可以在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);

应该提到我已经试过了。在超链接上设置imageUrl会导致超链接文本不显示。显然,图像优先于文本。我考虑过它,如果我无法使用此方法,可能最终会使用此方法。我不希望服务器端onClick事件只是为了将用户发送到另一个页面。也许您可以使用两个超链接,在第一个条件下使一个可见,或者在第二个条件下使第二个可见?也许不是最好的编码实践,但可以帮助您显示图像。HTH当我在aspx上设置imageurl时,图像会显示出来。但是,当我试图将它更改为代码隐藏中的其他内容时,它就没有了。这是我对页面生命周期不理解的吗?
<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";
    }
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);