Доступ к свойствам объекта из списков через источник данных объекта asp .net - PullRequest
1 голос
/ 12 августа 2011

Если у меня есть ObjectDataSource, который возвращает Person, у которого есть свойство FavoutieColoirs в виде списка, могу ли я получить доступ к одному из этих цветов для отображения через некоторые обозначения в разметке ASP?

т.е. если у Person есть свойство Name, я могу использовать

<%# DataBinder.Eval(Container.DataItem, "Name") %>

Могу ли я использовать что-то вроде

<%# DataBinder.Eval(Container.DataItem, "Colours[0]") %>

Или, может быть, даже

<%# DataBinder.Eval(Container.DataItem, "Colours.Select(x => x.ColourName == 'Blue')" %>

(Я уверен, что последний не работает, но я надеюсь, что есть способ реализовать второе).

Если я не могу этого сделать и хочу набрать «первый элемент в списке» (скажем), должен ли я добавить метод Person для «FirstFavouriteColour», который возвращает один элемент?

1 Ответ

2 голосов
/ 27 августа 2011

Официальная документация на Метод DataBinder.Eval (Object, String) совершенно ясно об этом:

Выражение: путь навигации от объекта контейнера к общедоступному свойству. значение для размещения в связанном управляющем свойстве. Это должно быть строка имен свойств или полей, разделенных точками, например Таблицы [0] .DefaultView. [0] .Цена в C # или Таблицы (0) .DefaultView. (0). Цена в Visual Basic

Таким образом, второе выражение должно работать нормально, если для Colors определено свойство индексатора (this[int index]).

...