IrishChieftain
IrishChieftain

Reputation: 15253

Anchor Link in DataGrid ItemTemplate

I have the following markup in a DataGrid:

<itemtemplate>
    <a href='~/File.aspx?item=<%# DataBinder.Eval(Container.DataItem, "ItemID").ToString() %>'
        runat='server'><%# DataBinder.Eval(Container.DataItem, "Title").ToString() %>
    </a>
</itemtemplate>

But it's rendering the following HTML:

<a href="../File.aspx?item=<%# DataBinder.Eval(Container.DataItem, "ItemID").ToString() %>"> My Link </a>

What am I doing wrong?

Upvotes: 0

Views: 6677

Answers (2)

Muhammad Akhtar
Muhammad Akhtar

Reputation: 52241

You have to append it

<a href='~/File.aspx?item=' + <%# DataBinder.Eval(Container.DataItem, "ItemID").ToString() %>

Otherwise if you use hyperlink, It will be very easy. e.g.

<ItemTemplate>
    <asp:HyperLink ID="HyperLink1" runat="server"
    NavigateUrl='<%#Eval("ItemID", "~/File.aspx?item={0}")%>'
    Text='<%# DataBinder.Eval(Container.DataItem, "Title").ToString() %>'></asp:HyperLink>
 </ItemTemplate>

Upvotes: 2

codeandcloud
codeandcloud

Reputation: 55248

Try this.

<asp:TemplateColumn>
    <ItemTemplate>
        <a id="A1" runat='server' href='<%# "~/File.aspx?item=" + Eval("ID")%>'>
            <%# Eval("Job") %>
        </a>
    </ItemTemplate>
</asp:TemplateColumn>

Upvotes: 3

Related Questions