Wie können Sie das komplexe Objekt des Datenbankens manuell zur Vorlagensteuerung wie eine Zeile in einer Rasteransicht manuell machen?

StackOverflow https://stackoverflow.com/questions/711304

Frage

Ich kämpfe hier mit der Datenbanksyntax. Zum Beispiel habe ich eine solche Datenstruktur wie diese -

public class Course{

public string CourseName {get;set;}

public string CourseCode {get;set;}

public List<Instructor> InstructorsTeaching{get;set;}

}

public class Instructor{

public string InstructorName{get;set;}

public string InstructorCode{get;set;}

}

Wenn ich nun diese Listenkurse binden möchte, um eine Gridview manuell zu sagen, könnte ich es tun

<asp:TextBox runat="server" ID="tbCourseName" Text='<%# Bind("CourseName")%>'/>

Während ich für die Bearbeitungsvorlage des Gitters angeben kann, aber wie bin ich die Lehrer -Lehreigenschaft, um eine Listbox in derselben Zeile zu sagen, kann ich die Syntax nicht herausfinden, hier ist ein Exaple dessen, was ich versucht und fehlgeschlagen habe

<asp:ListBox runat="server" ID="tbInstructors" 
     DataSource='<%# Eval("InstructorsTeaching") as List<Instructor> %>'>
    <asp:ListItem Text='<%# Bind("InstructorCode")%>' 
                 Value='<%# Bind("InstructorName")%>'/>...
 <as:ListBox/>

Mein obiger Code funktioniert nicht sicher :). Idealerweise möchte ich dies in Markup anstelle von Code hinter sich machen.

War es hilfreich?

Lösung

Andere Tipps

Sie haben einen Hauptgrund erreicht, warum ASP.NET-2-Wege-Datenanbieter saugt: Sie können wirklich keine 2-Wege-Datenbindung verschachteln.

Zum einen erlaubt ASP.NET, obwohl Sie es mit Evaly tun können, eine verschachtelte Graph -Syntax mit dem Bind -Expression (dh < %# Bind ("Customer.FirstName") %>) nicht zu.

Darüber hinaus erfordert für verschachtelte Listensteuerungen wie Ihr Szenario jede Liste eine zusätzliche Datenquelle. Sie setzen die DataSource in Ihrem Listbox fest, die für Bewertungsausdrücke geeignet ist. Wenn Sie jedoch die Ausdrücke verbinden, müssen Sie DataSourceid verwenden, um die ID einer Datenquelle zu liefern, die das innere Ergebnissatz bereitstellt. Und selbst dann wären Ihre Ergebnisse Kludgy, da Sie jeweils nur eine Datenquelle aktualisieren könnten.

2-Wege-Datenbank wurde wahrscheinlich unter Berücksichtigung von SQLDATaSource und nicht ObjektdataSource geschrieben. Wenn Sie ein Multi-Level-Objektdiagramm haben, werden Sie es schmerzhaft finden, 2-Wege-Datenbank zu verwenden.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top