2012-03-29 10 views
0

Ich habe ein Business-Objekt mit einem Dictionary<string, Contact> Feld, das ich möchte, um eine ASP.NET DataList mithilfe von Reflektion zu binden. Die ItemTemplate für die DataList definiert vier TextBox Kontrollen. Drei davon haben die gleichen ID als Eigenschaften des aktuellen Contact Objekts aus der Dictionary<string, Contact>. Die vierte TextBox sollte an den Schlüssel string gebunden sein.Business Object an ASP.NET DataList binden

Ich habe bereits einen Code geschrieben, der die einzelnen Contact Objekte, das Schlüsselfeld, das DataList Steuerelement und den Namen der zu verknüpfenden Eigenschaften-/Vorlagensteuerelemente entfernt. Das Problem, das ich habe, ist die Angabe der Werte für jedes Steuerelement.

Ich habe eine Methode mit folgenden Signatur:

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

} 

Was muß ich tue dies alle zusammen zu binden?

Antwort

0

Sie sollten die Geschäftsobjekte an die DataList binden können. In diesem Fall denke ich, Sie auf die ValueCollection des Wörterbuchs binden möchten:

DataList1.DataSource = dict.Values; 

Danach tun, sollten Sie in der Lage sein, normale Datenbindung Syntax:

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

Wenn Sie Suchen Sie nach einer anderen Option, können Sie wahrscheinlich auch eine ObjectDataSource Steuerung verwenden. Weitere Informationen finden Sie unter dem folgenden Link.

Binding DataList to ObjectDataSource

+0

Ich war in der Lage, die Werte Sammlung zu bekommen, um den Trick zu tun. Manchmal starrst du lange genug auf etwas, selbst die offensichtlichsten Dinge hören einfach auf, Sinn zu machen. Vielen Dank! –

+0

Ich kenne das Gefühl! Freut mich, dass es funktioniert :) –

Verwandte Themen