-1

私はこのタグを持っています: alt='<%# Eval("ImageDesc") %>' DataList コントロール内

ブラウザでページを表示すると、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

4 に答える 4

3

基本的なhtmlを使用している場合、ハイパーリンクでalt属性が使用されます

ただし、asp.netハイパーリンクコントロールを使用しているurの場合、altプロパティはToolTipに置き換えられます。代わりにこれを使用してください

alt ='<%#Eval( "ImageDesc")%>'をToolTip ='<%#Eval( "ImageDesc")%>'に置き換えます

于 2013-03-21T15:59:39.317 に答える
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");
    }
}
于 2013-03-21T15:59:06.410 に答える