2009-02-23 25 views
5

Estoy usando un ASP: LinkButton dentro de una plantilla de elemento dentro de un TemplateField en un GridView. Para el argumento de comando para el botón de enlace quiero pasar el ID de la fila de la fuente de datos que el gridview está obligado a, por lo que estoy haciendo algo como esto:ASP: LinkButton y Eval

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

Por desgracia, el código HTML resultante es esta :

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

parece que es analizar el Eval() correctamente, pero esto es de alguna manera la causa de que no a analizar la etiqueta LinkButton y simplemente lo descarga a cabo texto literal. ¿Alguien sabe:

a) por qué esto está sucediendo y, b) ¿Qué buena solución es este problema?

+0

"<% # Eval (" ID ")%>" parece difícil de analizar. – bzlm

+0

Puedes publicar un código. Parece que su LinkButton podría quedar atrapado dentro de un control Literal. –

Respuesta

9

Si bien no puede ser la causa de que, por lo general lo defino así:

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

por favor, puesto que el resto del marcado del GridView, ya que no debería estar haciendo eso.

+1

tonto, supongo que las citas lo hicieron. Gracias. Supuse que todas las plantillas se analizaron antes del asp actual: * marcado: supongo que no. – sgibbons

+0

Acabo de tener el mismo problema y estaba a punto de hacer la misma pregunta. – CJM

+0

¡Qué haría sin StackOverflow! –