2009-02-23 11 views
5

Sto utilizzando un ASP: LinkButton all'interno di un ItemTemplate all'interno di un TemplateField in un GridView. Per l'argomento di comando per il pulsante di collegamento voglio passare l'ID della riga dall'origine dati che il GridView è destinato a, quindi mi sto facendo qualcosa di simile:ASP: LinkButton e Eval

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

Purtroppo, il codice HTML risultante è questo :

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

sembra che è l'analisi del Eval() correttamente, ma questo è in qualche modo causando non per analizzare il tag LinkButton e proprio discarica fuori testo letterale. Qualcuno sa:

a) perché questo sta accadendo e, b) quale buona soluzione a questo problema è?

+0

"<% # Eval (" ID ")%>" sembra difficile da analizzare. – bzlm

+0

Puoi pubblicare del codice. Sembra che il tuo LinkButton possa essere catturato all'interno di un controllo letterale. –

risposta

9

Mentre non può essere la causa di esso, di solito definisco così:

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

Si prega di inviare il resto della marcatura del GridView, in quanto non dovrebbe fare questo.

+1

sciocco, credo che le virgolette lo abbiano fatto. Grazie. Supponevo che tutti i template fossero analizzati prima dell'effettivo asp: * markup - guess not. – sgibbons

+0

Ho appena avuto lo stesso problema e stavo per fare la stessa domanda. – CJM

+0

cosa farei senza StackOverflow! –