2009-03-11 5 views
1

Ich habe irgendwo gelesen, dass eine der wenigen Schwächen im Datenbindungsmodell darin besteht, dass Sie das Datenobjekt, das an das Steuerelement gebunden ist, niemals explizit behandeln oder erstellen. Es besteht die Möglichkeit, einen zusätzlichen Artikel hinzuzufügen. Aber ich bin mir nicht sicher, was damit gemeint ist.Das Datenobjekt, das an das Steuerelement gebunden ist, wird explizit behandelt oder erstellt

Was oder wie genau können Sie ein zusätzliches Element hinzufügen, wenn Sie explizit ein Datenobjekt erstellen dürfen? Wären Sie im Prinzip in der Lage, die Kontrolle an die Datenquelle zu binden und die Laufzeit automatisch mit den Daten der Datenquelle zu füllen, und zusätzlich könnte diese Kontrolle auch ein zusätzliches Element aus der Datenquelle erhalten, indem Sie es manuell erstellen ?! Wie würde es das können ?!

thanx

+0

Wählen Sie eine Sprache und Sie erhalten eine genauere Antwort. – madcolor

Antwort

0

Wenn Sie das OnItemDataBound-Ereignis verwenden, haben Sie vollständigen Zugriff auf das zugrunde liegende Datenquellenobjekt über e.Item.DataItem. Sie können diese Daten verwenden, um alle Steuerelemente in ItemTemplate über e.Item.FindControl ("Steuername") zu füllen. Sie können auch Funktionen innerhalb der <% #%> -Tags verwenden, um Text zu formatieren oder Werte zu berechnen.

0

Was Sie in meiner Einschätzung gelesen haben, ist reiner Mist. Bis zum Zeitpunkt der Bindung kann ich die betreffenden Objekte verändern. Ein häufiges Szenario ist zum Beispiel das Hinzufügen einer Spalte zu Zeilen in einem DataTable-Objekt (das eigentlich eine Sammlung von Zeilen und Spalten ist). Ich kann tatsächlich ändern, indem ich jeder Zeile eine Spalte (sagen wir Summe) hinzufüge.

Ich kann, mit einigen Einschränkungen für Klassen, dasselbe mit anderen Arten von Sammlungen und Objekten tun.

Nachdem ich das Objekt gebunden habe, kann ich noch Elemente zur Ausgabe hinzufügen, indem ich die Datenbindungsmethode für eine Zeile verwende, also bin ich immer noch nicht eingeschränkt.

Im Allgemeinen finde ich, dass diejenigen, die diesen Müll erklären, mit ASP-Stil-Code in einer ASP.NET-Seite verteidigen.

Verwandte Themen