2008-09-11 4 views

Répondre

59

encore plus claire, l'OMI, est:

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

Supposons que Name1 est une chaîne dit "Obama ....." Comment obtenir uniquement les 3 premiers caractères en utilisant Format string ...? –

5

J'avais déjà utilisé ce (mauvais, je sais):

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

Résultat = « John - Smith »

Mais découvert que je peux aussi mettre deux (ou plus) evals dans le même groupe lié aux données:

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

Résultat = 'John - Smith'

Ou

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

Résultat = 'Prénom - John, Nom - Smith'

4

Eval et Bind les deux sucent.
Pourquoi obtenir la propriété par réflexion? Vous pouvez y accéder directement comme ceci:

 
((MyObject)Container.DataItem).MyProperty 

Ce n'est pas comme si l'objet vous était inconnu lors de l'exécution. C'est mes deux cents, de toute façon.

+0

Totalement comme cette méthode, c'est propre. – BryanGrimes

2

J'ai une meilleure façon de faire la même chose ...

<asp:Label ID="lblName" runat="server" Text='<%#Eval("FirstName").ToString() +", "+ Eval("LastName").ToString() %>'></asp:Label> 

.

<%#Eval("FirstName").ToString() +", "+ Eval("LastName").ToString() %> 

Ici, les deux objets sont convertis en chaîne pour les concaténer.

Questions connexes