Ein kleiner Kursus in ASP.NET-Datenbindung

Die Datenbindung an ein DataSet ist also wirklich kinderleicht. Was aber, wenn die gewünschten Daten nicht in einer Datenbank enthalten sind? Was wäre denn, wenn man dem Anwender ermöglichen wollte, unter vielerlei Objekten zu wählen? Natürlich könnte man manuell ein DataSet mit den Daten erstellen, doch ist das so ähnlich, als würde man eine riesige Villa bauen, wenn man nur einen Geräteschuppen benötigt. Wäre es nicht einfacher, wenn man direkt an das Array anbinden könnte?

Und in der Tat kann man direkt an ein Array mit Variablenreferenzen anbinden, wie aus Listing B ersichtlich ist. In diesem Fall liegt eine Klasse vor (DataClass) die zwei Eigenschaften zur Verfügung stellt: Description und ID. Man kann ein Array von DataClass-Objekten erstellen und an ListBox1 anbinden, so ungefähr wie mit DataSet in Listing A, wobei DataTextField auf Description und DataKeyField auf ID gesetzt wird.

ASP.NET nutzt die Reflection-API zur Laufzeit, um die Objekte im Array zu prüfen und die entsprechenden Eigenschaften zu finden, und lädt diese dann in die ListItemCollection von ListBox1. Hier sollte man beachten, dass ASP.NET speziell nach Mitgliedern einer Eigenschaft sucht – öffentliche Variablen oder Funktionsmethoden funktionieren hier nicht.

Aus Listing C kann man entnehmen, dass Collections ebenso gut funktionieren, was eigentlich keine Überraschung sein sollte: Inzwischen ist sicherlich allgemein bekannt, dass .NET die IEnumerable- und IEnumerator-Interfaces zur Iteration von Collections benutzt. Wer nicht weiß, worum es hier geht, sollte einen Blick auf Listing D werfen. Dort wird ListBox1 an CollectionClass gebunden, wodurch IEnumerable und IEnumerator ausgeführt werden, um Collection-ähnliche Iterationsfähigkeiten zu gewinnen.

Themenseiten: Big Data, Datenbank, Software

Fanden Sie diesen Artikel nützlich?
Content Loading ...
Whitepaper

Artikel empfehlen:

Neueste Kommentare 

Noch keine Kommentare zu Ein kleiner Kursus in ASP.NET-Datenbindung

Kommentar hinzufügen

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind markiert *