如何在ASP.NET超链接控件中进行数据绑定alt标记?

时间:2013-03-21 15:40:08

标签: asp.net hyperlink alt

我在DataList控件中有这个标记:alt='<%# Eval("ImageDesc") %>'

当我在浏览器中查看该页面时,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>

4 个答案:

答案 0 :(得分:3)

实际上,超链接没有alt属性。如果需要,请使用工具提示:

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

alt标记用于<img>标记,以便在找不到图像时显示替换文字。此外,文本在某些浏览器中显示为工具提示。如果要显示工具提示,请使用HTML title属性,该属性可以使用Tooltip ASP.Net属性获取。

答案 1 :(得分:3)

当我们使用基本的html

时,

alt属性用于超链接

但是如果您使用asp.net超链接控制alt属性被ToolTip替换,请改用

替换 alt ='&lt;%#Eval(“ImageDesc”)%&gt;'通过ToolTip ='&lt;%#Eval(“ImageDesc”)%&gt;'

答案 2 :(得分:2)

如果在aspx页面中

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

如果在后面的代码中只做linkQuoteImage.Text =“Text for image alt” - 你需要在alt中的文本

答案 3 :(得分: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");
    }
}