2008-09-11 14 views

Respuesta

59

aún más clara, la OMI, es:

<%# String.Format("{0} - {1}", Eval("Name1"), Eval("Name2")) %> 
+0

Supongamos que Name1 es una cadena que dice "Obama ....." ¿Cómo obtener solo First 3 Chars usando Format string ...? –

5

que habían usado previamente esta (mala, lo sé):

<%# Eval("Name1", "{0} - ")%> <%#Eval("Name2")%> 

Resultado = 'John - Smith'

Pero descubrí que yo también puedo poner dos (o más) evals en el mismo grupo enlazado a datos:

<%#Eval("Name1") & " - " & Eval("Name2")%> 

Resultado = 'John - Smith'

O

<%# "First Name - " & Eval("Name1") & ", Last Name - " & Eval("Name2")%> 

Resultado = 'Nombre - John, Apellido - Smith'

4

Eval and Bind both suck.
¿Por qué obtener la propiedad a través de la reflexión? Se puede acceder a él directamente como esto:

 
((MyObject)Container.DataItem).MyProperty 

No es como si el objeto es desconocido para usted en tiempo de ejecución. Esos son mis dos centavos, de todos modos.

+0

Totalmente como este método, está limpio. – BryanGrimes

2

Tengo una manera fácil de hacer esto 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 cadena para concatenarlos.

Cuestiones relacionadas