2013-03-21 59 views
-1

我有這樣的標籤:alt='<%# Eval("ImageDesc") %>' DataList控件如何在ASP.NET超鏈接控件中綁定alt標籤?

裏面當我查看網頁瀏覽器中的ALT標籤總是空:alt=""

也許這是因爲ALT標籤不是由超鏈接控制支持?我怎樣才能綁定alt標籤?

-------這是確切的代碼

<asp:HyperLink ID="linkQuoteImage" runat="server" EnableViewState="False" ImageUrl='<%# "/images/"+Eval("ImageFile").ToString().Replace("/","/tmb/") %>' NavigateUrl='<%# "~/Quotes/"+Eval("SlugText") %>' alt='<%# Eval("ImageDesc") %>' Font-Underline="False" ForeColor="#333333"></asp:HyperLink> 
+0

所以你試圖將alt屬性添加到超鏈接內的圖像。請告訴我們這些控件的標記。 – MarcusVinicius 2013-03-22 13:55:54

回答

2

如果在aspx頁面

<asp:HyperLink ID="linkQuoteImage" runat="server">Text for image alt</asp:HyperLink> 

如果在後面的代碼只是做linkQuoteImage.Text =「圖像替代文字」 - 你需要的替代文字

+0

的ALT代碼謝謝!這是最簡單和有效的解決方案 – 2014-02-16 00:26:40

3

真的,超鏈接沒有alt財產。使用工具提示相反,如果這是希望:

<asp:HyperLink ID="lnkTest" runat="server" ToolTip='<%# Eval("Data") %>'>'<%# Eval("OtherData")%>'</asp:HyperLink> 

alt屬性在<img>標籤用來顯示時未找到圖像的替換文本。此外,該文本在某些瀏覽器中顯示爲工具提示。如果要顯示工具提示,請使用HTML title屬性,該屬性可以通過使用Tooltip ASP.Net屬性獲取。

+0

不,我不需要提示,我需要SEO的ALT標記。超鏈接控件包含標籤,因此它應該是可能的。 – 2013-03-22 13:36:41

1

是你的<asp:HyperLink>控制像一箇中繼器的一些控制?

此代碼適用於我。

前端:

<asp:Repeater ID="rptTest" runat="server"> 
    <ItemTemplate> 
     <asp:HyperLink ID="testLink" runat="server" alt='<%# Eval("ImageDesc") %>'>This is a link</asp:HyperLink> 
    </ItemTemplate> 
</asp:Repeater> 

後端:

protected void Page_Load(object sender, EventArgs e) 
{ 
    var images = new List<ImageData> 
    { 
     new ImageData { ImageDesc = "test" }, 
     new ImageData { ImageDesc = "test2" } 
    }; 
    rptTest.DataSource = images; 
    rptTest.DataBind(); 
} 

...

public class ImageData 
{ 
    public string ImageDesc { get; set; } 
} 

如果您沒有使用有可用的Eval方法的控制,然後你需要以不同的方式添加屬性。我會建議在代碼隱藏中設置它。

前端:

<asp:HyperLink ID="testLink" runat="server">This is a link</asp:HyperLink> 

後端:

protected void Page_Load(object sender, EventArgs e) 
{ 
    if (testLink.Attributes["alt"] == null) 
    { 
     testLink.Attributes.Add("alt", "test"); 
    } 
} 
+0

它是一個datalist控件,並且eval適用於所有超鏈接屬性Text,NavigationLink,...除了未由Eval函數填充的alt標記。 – 2013-03-22 13:39:01

+0

@MarioM我提供的與轉發器一起工作的代碼也適用於DataList。我認爲你的問題在別處。除此之外,診斷很難。你能編輯你的文章以提供更多的代碼嗎?查看DataList本身以及將數據綁定到其中的代碼會很有幫助。 – 2013-03-22 14:31:52

+0

@MarioM您是否確定在您的Eval調用中ImageDesc的拼寫與您嘗試訪問該對象的屬性的拼寫相匹配? – 2013-03-22 14:33:47

3

alt屬性中的超鏈接時,我們使用的是基本HTML

但在烏拉圭回合使用asp.net超鏈接的情況下,控制alt屬性替換爲工具提示使用此替代

替換 ALT = '<%#的eval( 「ImageDesc」)%>' 由工具提示= '<%#的eval( 「ImageDesc」)%>'

+0

的代碼的確切代碼行我不需要tooltip屬性,我需要SEO – 2013-03-22 13:39:43