Consider the following code:
<script runat="server">
Sub Page_Load(obj As Object, ea As EventArgs)
Dim sqlReader As SqlDataReader
sqlReader = 'calling a function that returns SqlDataReader
dlCart.DataSour ce = sqlReader
dlCart.DataBind
End Sub
</script>
<form runat="server">
<asp:DataList ID="dlCart" runat="server">
<HeaderTemplate >
<table>
<tr>
........
........
........
</tr>
</HeaderTemplate>
<ItemTemplate >
<tr>
<td><%# Container.DataI tem("ProdID") %></td>
<td><%# Container.DataI tem("ProductNam e") %></td>
<td><%# Container.DataI tem("Price") %></td>
<td><a href='RemoveIte m.aspx?ProdID=< %# Container.DataI tem("ProdID")
%>'>Remove</a></td>
</tr>
</ItemTemplate>
......
</asp:DataList>
</form>
Assume that the DataList displays 3 products to a user. The ProdIDs of
the 3 products are 10, 20 & 30 respectively.
When the user clicks the product whose ProdID is 10, as expected, he is
taken to RemoveItem.aspx with the querystring ProdID=10 appended to it
i.e. the user is taken to
http://myserver/RemoveItem.aspx?ProdID=10
But instead of using <a href...for rendering the 'Remove' link, if I
use <asp:Hyperlin k>
<td><asp:Hyperl ink ID="lnk" NavigateUrl='Re moveItem.aspx?P rodID=<%#
Container.DataI tem("ProdID") %>' Text="Remove" runat="server"/></td>
then <%# Container.DataI tem("ProdID") %doesn't get assigned to the
appropriate ProdID. Rather, the URL of link literally remains as what
is coded above (using <asp:Hyperlink. .>). In other words, irrespective
of whichever 'Remove' link a user clicks, he is taken to
http://myserver/RemoveItem.aspx ?ProdID=<%#%20C ontainer.DataIt em("ProdID")%20 %>
How do I use <%# Container.DataI tem("ProdID") %in the NavigateUrl
property of <asp:Hyperlinki n order to assign the corresponding
database ProdID value to the querystring ProdID so that, for e.g. if
the user clicks the 'Remove' link corresponding to the product whose
ProdID is 10, he is taken to
http://myserver/RemoveItem.aspx?ProdID=10