Best Technique for Multiple Eval Fields in Gridview ItemTemplate?
Solution 1
Even clearer, IMO, is:
<%# String.Format("{0} - {1}", Eval("Name1"), Eval("Name2")) %>
Solution 2
Eval and Bind both suck.
Why get the property through reflection? You can access it directly like this:
((MyObject)Container.DataItem).MyProperty
It's not like the object is unknown to you at runtime. That's my two cents, anyhow.
Solution 3
I had previously used this (bad, I know):
<%# Eval("Name1", "{0} - ")%> <%#Eval("Name2")%>
Result = 'John - Smith'
But just discovered that I can also put TWO (or more) Evals in the same data-bound group:
<%#Eval("Name1") & " - " & Eval("Name2")%>
Result = 'John - Smith'
Or
<%# "First Name - " & Eval("Name1") & ", Last Name - " & Eval("Name2")%>
Result = 'First Name - John, Last Name - Smith'
Solution 4
I have a easiest way to do this same thing...
<asp:Label ID="lblName" runat="server" Text='<%#Eval("FirstName").ToString() +", "+ Eval("LastName").ToString() %>'></asp:Label>
.
<%#Eval("FirstName").ToString() +", "+ Eval("LastName").ToString() %>
Here both objects are converted into string the concatenate them.
Dhaust
To live is to fall. To survive is to find meaning in the falling. And I'm finding a lot of meaning!
Updated on April 10, 2020Comments
-
Dhaust about 4 years
What is the best way to use multiple EVAL fields in a GridView ItemTemplate?
Looking to have some control over formatting for appearance as well as setting up hyperlinks/javascript etc.
-
bryan almost 13 yearsTotally like this method, it's clean.
-
Rahul Uttarkar about 10 yearsSuppose Name1 is a string say "Obama....." How to get only First 3 Chars using Format string...?