2011-06-23 97 views
0

我有一個asp:圖像內沒有顯示的一個asp:hyperlink。這是aspx。asp:圖像不顯示在一個asp:HyperLink

<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

當我設置IMAGEURL的ASPX圖像確實顯示。但是,當我嘗試將其更改爲代碼隱藏中的其他內容時,則不會。這是我不瞭解的頁面生命週期? – Jerry

回答

0

您是否試過使用圖像按鈕?我沒有在我面前的代碼,但可以根據您的條件調整字段,類似於您使用超鏈接包裝器的方式。

+0

我認爲它,並可能最終使用這種情況下,我無法使這種方法的工作。我不想有一個服務器端onClick事件只是爲了將用戶發送到另一個頁面。 – Jerry

+0

也許你可以使用兩個超鏈接,使第一個條件可見,或第二個條件可見的第二個超鏈接?也許不是最好的編碼做法,但可以幫助您顯示圖像。 HTH – webtrifusion

1

嘗試以下操作:

hlSubmitSRF.ImageUrl = imageUrl; 

坐落在超鏈接的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"; 
    } 
+0

應該提到我已經嘗試過了。在超鏈接上設置imageUrl會導致超鏈接文本不顯示。顯然,圖像優先於文本。 – Jerry

0

請勿在page_init中設置超鏈接文本。 .Text屬性可能會替換圖像(或使其不可見)。超鏈接也有一個方便的.ImageUrl屬性(只要你不使用網址路由)。

HTH

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);