Reputation: 15253
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
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
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