2009-02-10 4 views
5

Je rends les données en utilisant le contrôle Répéteur. Disons qu'il ya 2 champs dans la source de données: productName et ProductIDCréation de liens dynamiques avec le contrôle Répéteur

Dans le code suivant:

<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> 

Que dois-je modifier dans

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

d'inclure la valeur retreived de le ProductID dans le lien NavigateUrl = "~/Details.aspx? ID ="

Répondre

15

NavigateUrl="~/Details.aspx?ID=<%# Eval("productID") %>" devrait fonctionner ...

... mais ce n'est pas le cas!

La façon la plus élégante devrait être:

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

Ce que je fait réellement, mais il ne semble pas fonctionner. Mettre NavigateUrl = "~/Details.aspx? ID = <% # Eval (" productID ")%>" couse: La génération du fichier du concepteur a échoué: L'étiquette du serveur n'est pas bien formée. Quand je change un ensemble de guillemets en simple il crée le lien Details.aspx? ID = <% # Eval ('productID')%> – padn

+0

Edit: Vous étiez correct car la méthode initiale ne fonctionnait pas réellement, mais la méthode mise à jour fait ... "La valeur du paramètre d'expression doit évaluer à une propriété publique. " Source: http://msdn.microsoft.com/en-us/library/4hx47hfe.aspx –

+0

Cela fonctionne bien maintenant merci – padn

Questions connexes