Лучший метод для нескольких полей Eval в Gridview ItemTemplate?
-
09-06-2019 - |
Вопрос
Как лучше всего использовать несколько полей EVAL в GridView ItemTemplate?
Хотите иметь некоторый контроль над форматированием внешнего вида, а также настройкой гиперссылок/Javascript и т. д.
Решение
Еще яснее, ИМХО, следующее:
<%# String.Format("{0} - {1}", Eval("Name1"), Eval("Name2")) %>
Другие советы
Раньше я использовал это (плохо, я знаю):
<%# Eval("Name1", "{0} - ")%> <%#Eval("Name2")%>
Результат = 'Джон - Смит'
Но только что обнаружил, что я также могу поместить ДВА (или более) Eval в одну и ту же группу с привязкой к данным:
<%#Eval("Name1") & " - " & Eval("Name2")%>
Результат = 'Джон - Смит'
Или
<%# "First Name - " & Eval("Name1") & ", Last Name - " & Eval("Name2")%>
Результат = «Имя — Джон, Фамилия — Смит»
Eval и Bind — отстой.
Зачем получать свойство посредством отражения?Вы можете получить к нему доступ напрямую следующим образом:
((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() %>
Здесь оба объекта преобразуются в строку и объединяют их.