2011-08-12 13 views
1

FavourieColoirsというプロパティを持つPersonを返すObjectDataSourceをListとして持っている場合、ASPマークアップの表記法を使って表示するためにそれらの色のうちの1つにアクセスできますか?人は、Nameプロパティを持っていた場合asp .netオブジェクトデータソース経由でリストからオブジェクトプロパティにアクセス

すなわち、私は

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

は私が

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

それともでも

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

最後の(かなり確信してのようなものを使用することができます使用することができます1つは動作しませんが、私は2番目の方法を実装する方法があると思います)。

私はそれを行うことはできませんし、 'リスト内の最初のアイテム'(言い換えれば)を1つのアイテムを返すPersonに 'FirstFavouriteColour'のメソッドを追加する必要がありますか?

答えて

2

DataBinder.Eval Method (Object, String)の公式ドキュメントはこのことについて非常に明確である:

式:バウンドコントロールプロパティに配置されるパブリックプロパティ 値にコンテナオブジェクトからナビゲーションパス。これは などのピリオドで区切られたプロパティまたはフィールド名の文字列 でなければなりません。テーブル[0] .DefaultView。[0] .Price in C#または テーブル(0).DefaultView(0).Price in Visual Basic

Colorsにインデクサー(this[int index])プロパティが定義されている場合は、2番目の式が正常に動作するはずです。

関連する問題