2009-02-10 10 views
5

Ich rendere Daten mit Repeater-Steuerelement. Lassen Sie uns sagen, es gibt zwei Felder in der Datenquelle: Produktname und ProductIDErstellen von dynamischen Verbindungen mit Repeater-Steuerelement

Im folgenden Code:

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

Was ich in

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

an Wert umfassen retreived ändern tun müssen aus die ProductID in der Verbindung NavigateUrl = "~/Details.aspx? ID ="

Antwort

15

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

... aber das tut es nicht!

sollte Die eleganteste Art sein:

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

Das, was eigentlich habe ich, aber es hat nicht zu funktionieren scheint. Setzen NavigateUrl = "~/Details.aspx? ID = <% # Eval (" productID ")%>" cuse: Generierung der Designer-Datei fehlgeschlagen: Das Server-Tag ist nicht gut gebildet.Wenn ich eine Reihe von Anführungszeichen auf Single ändern es erstellt Link Details.aspx? ID = <% # Eval ('productID')%> – padn

+0

Bearbeiten: Sie waren korrekt, da die ursprüngliche Methode nicht wirklich funktioniert hat, aber die aktualisierte Methode tut ... "Der Wert des Ausdrucksparameters muss zu einem öffentlichen Eigentum bewerten. " Quelle: http://msdn.microsoft.com/en-us/library/4hx47hfe.aspx –

+0

Das funktioniert jetzt gut danke – padn