2009-02-23 7 views
5

Ich verwende ein ASP: LinkButton innerhalb eines ItemTemplate innerhalb eines TemplateField in einem GridView. Für den Befehl Argument für die Link-Schaltfläche Ich möchte die ID der Zeile aus der Datenquelle zu übergeben, die das Gridview gebunden ist, also bin ich so etwas wie dies zu tun:ASP: LinkButton und Eval

<asp:LinkButton ID="viewLogButton" CommandName="viewLog" CommandArgument="<%#Eval("ID")%>" Text="View Log" runat="server"/> 

Leider ist die resultierende HTML diese :

<asp:LinkButton ID="viewLogButton" CommandName="viewLog" CommandArgument="3" Text="View Log" runat="server"/> 

es scheint, dass es richtig ist die Eval() Parsen, aber es irgendwie verursacht nicht den Linkbutton-Tag zu analysieren und es nur als normalen Text auskippen. Weiß jemand:

a) warum das passiert und, b) Was eine gute Lösung für dieses Problem ist?

+0

"<% # Eval (" ID ")%>" sieht schwer zu analysieren. – bzlm

+0

Können Sie etwas Code posten? Es scheint, als ob Ihr LinkButton in einem Literal-Steuerelement gefangen ist. –

Antwort

9

Während es nicht verursachen können, ich es wie folgt definieren in der Regel:

CommandArgument='<%#Eval("ID")%>' 

Bitte senden Sie den Rest der Markup des Gridview, da es nicht tun sollte.

+1

alberne mich, ich denke, die Zitate haben es getan. Vielen Dank. Ich nahm an, dass alle Vorlagen vor dem eigentlichen ASP geparst wurden: * Markup - rate nicht. – sgibbons

+0

hatte gerade das gleiche Problem und war im Begriff, die gleiche Frage zu stellen. – CJM

+0

was würde ich ohne StackOverflow tun! –