Как лучше всего использовать несколько полей EVAL в GridView ItemTemplate?
Хотите иметь некоторый контроль над форматированием внешнего вида, а также настройкой гиперссылок / javascript и т. д.





Я раньше использовал это (плохо, я знаю):
<%# Eval("Name1", "{0} - ")%> <%#Eval("Name2")%>
Результат = 'Джон - Смит'
Но только что обнаружил, что я также могу поместить ДВА (или более) Evals в одну и ту же группу с привязкой к данным:
<%#Eval("Name1") & " - " & Eval("Name2")%>
Результат = 'Джон - Смит'
Или же
<%# "First Name - " & Eval("Name1") & ", Last Name - " & Eval("Name2")%>
Результат = 'Имя - Джон, Фамилия - Смит'
Еще яснее, ИМО:
<%# String.Format("{0} - {1}", Eval("Name1"), 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() %>
Здесь оба объекта преобразуются в строку и объединяют их.
Предположим, Name1 - это строка с надписью "Obama .....". Как получить только первые 3 символа, используя строку формата ...?