2009-02-10 14 views
5

Estoy procesando datos utilizando el control Repeater. Digamos que hay 2 campos del origen de datos: productName y ProductIDCreación de enlaces dinámicos con el control Repeater

En el siguiente código:

<asp:Repeater ID="Repeater1" runat="server" DataSourceID="SqlDataSource1"> 
<HeaderTemplate> 
<ul> 
</HeaderTemplate> 
<ItemTemplate> 
<li> 
<%#Eval("productName")%> <br/> 
<asp:HyperLink ID="lnkDetails" runat="server" NavigateUrl="~/Details.aspx?ID=">See Details</asp:HyperLink> 
</li> 
</ItemTemplate> 
<FooterTemplate> 
</ul> 
</FooterTemplate> 

¿Qué necesito para modificar en

<asp:HyperLink ID="lnkDetails" runat="server" NavigateUrl="~/Details.aspx?ID=">See Details</asp:HyperLink> 

para incluir el valor recuperado la de el ProductID en el enlace NavigateUrl = "~/Details.aspx? ID ="

Respuesta

15

NavigateUrl="~/Details.aspx?ID=<%# Eval("productID") %>" debería funcionar ...

... pero no es así!

La forma más elegante debe ser:

<asp:HyperLink ID="lnkDetails" runat="server" NavigateUrl='<%# Eval("ProductID", "~/Details.aspx?ID={0}") %>'>See Details</asp:HyperLink> 
+0

Que lo que en realidad hice, pero no parece funcionar. Poniendo NavigateUrl = "~/Details.aspx? ID = <% # Eval (" productID ")%>" couse: Falló la generación del archivo del diseñador: la etiqueta del servidor no está bien formada. Cuando cambio un conjunto de comillas para solo crea el enlace Details.aspx? ID = <% # Eval ('productID')%> – padn

+0

Editar: Estaba en lo correcto ya que el método inicial no funcionaba en realidad, pero el método actualizado sí ... "El valor del parámetro de expresión debe evaluar a una propiedad pública ". Fuente: http://msdn.microsoft.com/en-us/library/4hx47hfe.aspx –

+0

Eso funciona bien ahora gracias – padn

Cuestiones relacionadas