2011-08-12 20 views
1

如果我有一個ObjectDataSource返回具有屬性FavoutieColoirs作爲List的Person,我可以通過ASP標記中的一些表示法訪問其中一種顏色以供顯示嗎?通過asp.net對象數據源從列表訪問對象屬性

也就是說,如果人已經有一個名稱屬性,我可以用

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

我可以使用類似

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

,或者甚至

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

(很肯定最後一個不起作用,但我希望有一些方法來實現第二個)。

如果我不能這樣做,並想暗示'列表中的第一項'(說)我必須添加一個方法給'FirstFavouriteColour'Person返回單個項目?

回答

2

DataBinder.Eval Method (Object, String)的正式文檔是關於這個很清楚:

表達:從所述容器對象到公共屬性 值的導航路徑被放置在綁定控件屬性。這必須是由句點分隔的屬性或字段的名稱,如表 [0] .DefaultView。[0]。價格在C#或 表(0).DefaultView。(0)。價格在Visual Basic

一個 串

因此,如果顏色具有定義的索引器(this[int index])屬性,則第二個表達式應該可以正常工作。