La migliore tecnica per più campi di valutazione in Gridview ItemTemplate?
-
09-06-2019 - |
Domanda
Qual è il modo migliore per utilizzare più campi EVAL in un ItemTemplate GridView?
Cercando di avere un certo controllo sulla formattazione dell'aspetto e sull'impostazione di collegamenti ipertestuali/javascript ecc.
Soluzione
Ancora più chiaro, secondo l'IMO, è:
<%# String.Format("{0} - {1}", Eval("Name1"), Eval("Name2")) %>
Altri suggerimenti
In precedenza avevo usato questo (pessimo, lo so):
<%# Eval("Name1", "{0} - ")%> <%#Eval("Name2")%>
Risultato = 'Giovanni - Smith'
Ma ho appena scoperto che posso anche inserire DUE (o più) Valutazioni nello stesso gruppo associato a dati:
<%#Eval("Name1") & " - " & Eval("Name2")%>
Risultato = 'Giovanni - Smith'
O
<%# "First Name - " & Eval("Name1") & ", Last Name - " & Eval("Name2")%>
Risultato = 'Nome - John, Cognome - Smith'
Eval e Bind fanno entrambi schifo.
Perché ottenere la proprietà attraverso la riflessione?Puoi accedervi direttamente in questo modo:
((MyObject)Container.DataItem).MyProperty
Non è che l'oggetto ti sia sconosciuto in fase di esecuzione.Questi sono i miei due centesimi, comunque.
Ho un modo più semplice per fare la stessa cosa...
<asp:Label ID="lblName" runat="server" Text='<%#Eval("FirstName").ToString() +", "+ Eval("LastName").ToString() %>'></asp:Label>
.
<%#Eval("FirstName").ToString() +", "+ Eval("LastName").ToString() %>
Qui entrambi gli oggetti vengono convertiti in stringhe per concatenarli.