2012-03-29 10 views
0

Dictionary<string, Contact>フィールドを持つビジネスオブジェクトが、リフレクションを使用してASP.NET DataListにバインドしたいと考えています。 DataListItemTemplateは、4つのTextBoxコントロールを定義します。これらのうちの3つは、Dictionary<string, Contact>の現在のContactオブジェクトのプロパティと同じIDを持っています。 4番目のTextBoxstringキーにバインドする必要があります。ビジネスオブジェクトからASP.NETデータリストへのバインド

オブジェクト、キーフィールド、DataListコントロール、およびバインドするプロパティ/テンプレートコントロールの名前を個々に除外するコードを記述しています。私が抱えている問題は、各コントロールの値を指定することです。

私は、次のシグネチャを持つメソッドを持っています。

private void AssignControlValue(Contact contact, PropertyInfo pi, DataList control, string key = "") 
{ 

} 

は、私はすべて一緒にこれを結び付けるために行うには何が必要ですか?

答えて

0

ビジネスオブジェクトをDataListにバインドできる必要があります。この場合、私はあなたが辞書のValueCollectionにバインドしたいと思います:あなたがしている場合は

<ItemTemplate> 
    <%# Eval("SomeProperty") %> 
</ItemTemplate> 

DataList1.DataSource = dict.Values; 

これを実行したら、通常のデータバインディング構文を使用することができるはずです別のオプションを探している場合はおそらくObjectDataSourceコントロールを使用することもできます。詳細は以下のリンクをご覧ください。

Binding DataList to ObjectDataSource

+0

トリックを行うために値のコレクションを取得できました。時には、最も明白なものが意味をなさないことさえも十分に長いものを見つめていることがあります。ありがとう! –

+0

私は感情を知っている!あなたはそれが働いてうれしい:) –

関連する問題