我有一个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中,当我查看页面源时,图像甚至都不显示。
答案 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);