Beste Technik für mehrere Auswertungsfelder in Gridview ItemTemplate?
-
09-06-2019 - |
Frage
Was ist der beste Weg, mehrere EVAL-Felder in einem GridView ItemTemplate zu verwenden?
Ich möchte eine gewisse Kontrolle über die Formatierung für das Erscheinungsbild sowie das Einrichten von Hyperlinks/Javascript usw. haben.
Lösung
Noch deutlicher, IMO, ist:
<%# String.Format("{0} - {1}", Eval("Name1"), Eval("Name2")) %>
Andere Tipps
Ich hatte vorher verwendet, um dieses (sehr schlecht, ich weiß):
<%# Eval("Name1", "{0} - ")%> <%#Eval("Name2")%>
Ergebnis = 'John - Smith'
Aber gerade entdeckt, dass ich auch zwei setzen kann (oder mehr) Evals in der gleichen Datengebundene Gruppe:
<%#Eval("Name1") & " - " & Eval("Name2")%>
Ergebnis = 'John - Smith'
oder
<%# "First Name - " & Eval("Name1") & ", Last Name - " & Eval("Name2")%>
Ergebnis = 'Vorname - John, Nachname - Smith'
Evaluierungs- und binden beide saugen.
Warum die Eigenschaft durch Reflexion bekommen? Sie können es direkt zugreifen wie folgt aus:
((MyObject)Container.DataItem).MyProperty
Es ist nicht wie das Objekt Ihnen zur Laufzeit nicht bekannt ist. Das ist meine zwei Cent, sowieso.
Ich habe einen einfachste Weg, diese gleiche Sache zu tun ...
<asp:Label ID="lblName" runat="server" Text='<%#Eval("FirstName").ToString() +", "+ Eval("LastName").ToString() %>'></asp:Label>
.
<%#Eval("FirstName").ToString() +", "+ Eval("LastName").ToString() %>
Hier werden beide Objekte in String konvertiert die sie verketten.