¿La mejor técnica para múltiples campos de evaluación en Gridview ItemTemplate?
-
09-06-2019 - |
Pregunta
¿Cuál es la mejor manera de utilizar varios campos EVAL en un GridView ItemTemplate?
Buscando tener cierto control sobre el formato de apariencia, así como sobre la configuración de hipervínculos/javascript, etc.
Solución
Aún más claro, en mi opinión, es:
<%# String.Format("{0} - {1}", Eval("Name1"), Eval("Name2")) %>
Otros consejos
Anteriormente había usado esto (malo, lo sé):
<%# Eval("Name1", "{0} - ")%> <%#Eval("Name2")%>
Resultado = 'Juan - Smith'
Pero acabo de descubrir que también puedo poner DOS (o más) evaluaciones en el mismo grupo vinculado a datos:
<%#Eval("Name1") & " - " & Eval("Name2")%>
Resultado = 'Juan - Smith'
O
<%# "First Name - " & Eval("Name1") & ", Last Name - " & Eval("Name2")%>
Resultado = 'Nombre - John, Apellido - Smith'
Eval y Bind apestan.
¿Por qué obtener la propiedad mediante reflexión?Puedes acceder directamente así:
((MyObject)Container.DataItem).MyProperty
No es que usted desconozca el objeto en tiempo de ejecución.Esos son mis dos centavos, de todos modos.
Tengo una manera más fácil de hacer lo mismo...
<asp:Label ID="lblName" runat="server" Text='<%#Eval("FirstName").ToString() +", "+ Eval("LastName").ToString() %>'></asp:Label>
.
<%#Eval("FirstName").ToString() +", "+ Eval("LastName").ToString() %>
Aquí ambos objetos se convierten en cadenas y los concatenan.