Ответ 1
Еще яснее, IMO:
<%# String.Format("{0} - {1}", Eval("Name1"), Eval("Name2")) %>
Каков наилучший способ использования нескольких полей EVAL в GridView ItemTemplate?
Ищете контроль над форматированием внешнего вида, а также настройку гиперссылок /javascript и т.д.
Еще яснее, IMO:
<%# String.Format("{0} - {1}", Eval("Name1"), Eval("Name2")) %>
Я раньше использовал это (плохое, я знаю):
<%# Eval("Name1", "{0} - ")%> <%#Eval("Name2")%>
Результат = 'Джон-Смит'
Но только что обнаружил, что я могу также поместить TWO (или более) Evals в одну и ту же группу данных:
<%#Eval("Name1") & " - " & Eval("Name2")%>
Результат = 'Джон-Смит'
Или
<%# "First Name - " & Eval("Name1") & ", Last Name - " & Eval("Name2")%>
Результат = 'Имя - Джон, Фамилия - Смит'
Эваль и Свяжите оба сосать.
Зачем получить собственность через отражение? Вы можете получить доступ к нему прямо следующим образом:
((MyObject)Container.DataItem).MyProperty
Не похоже, что объект неизвестен вам во время выполнения. Что мои два цента, так или иначе.
У меня самый простой способ сделать то же самое...
<asp:Label ID="lblName" runat="server" Text='<%#Eval("FirstName").ToString() +", "+ Eval("LastName").ToString() %>'></asp:Label>
.
<%#Eval("FirstName").ToString() +", "+ Eval("LastName").ToString() %>
Здесь оба объекта преобразуются в строку, объединяют их.