Kapitel 9 Webserversteuerelemente für die Darstellung von Listen
Listensteuerelemente erleichtern die Darstellung von Listen. Je nach dem gewählten Steuerelement generiert ASP.NET den HTML-Code für Kontrollkästchen, für Optionsfelder, für ein Dropdown-Listenfeld oder für ein Listenfeld.
Wenn ein Anwender aus mehreren Einträgen eine oder mehrere Optionen auswählen soll, bieten sich verschiedene Steuerelemente zur Realisierung an. Wenn nur ein einziger Eintrag aus einigen wenigen Möglichkeiten ausgewählt werden soll, sind Optionsfelder (RadioButton) die richtige Wahl. Wenn mehrere Optionen aus einer überschaubaren Menge zur Wahl stehen, werden meistens Kontrollkästchen (CheckBox) verwendet. Wenn die Zahl der Einträge steigt, bieten Listenfelder und Dropdown-Listenfelder den größeren Komfort.
Für solche Fälle, in denen es darum geht, eine Liste von Einträgen darzustellen, bietet ASP.NET vier spezielle Listensteuerelemente an:
|
CheckBoxList |
|
RadioButtonList |
|
DropDownList |
|
ListBox |
Diese vier Klassen sind von der abstrakten Klasse System.Web.UI.WebControls.ListControl abgeleitet, die Basisfunktionen bereitstellt.
Die einzelnen Listeneinträge werden durch ListItem-Objekte repräsentiert.
Die grundlegende Vorgehensweise ist bei allen Listentypen ähnlich. Eines der vier genannten Listensteuerelemente fungiert als Eltern-Element, das zentrale Eigenschaften wie das Aussehen und das Verhalten bei bestimmten Ereignissen festlegt. Innerhalb dieses Elternelements werden die Einträge entweder statisch mit ListItem-Objekten definiert, oder das Elternelement legt die Datenquelle direkt fest. Bei einer statischen Definition ergibt sich in der aspx-Seite stets dieses Bild:
<asp:Listensteuerelement
Attribut ="Wert"
Attribut ="Wert"
... >
<asp:ListItem value="1" text="Erste Option" />
<asp:ListItem value="2" text="Zweite Option" />
...
</asp:Listensteuerelement>
Je nach dem gewähltem Typ von Listensteuerelement erscheinen die Einträge im HTML-Code in Form von Optionsfeldern, als Kontrollkästchen, in Form eines Listenfelds oder als Dropdown-Listenfeld.
9.1 Die abstrakte Basisklasse ListControl
 
Die abstrakte Basisklasse System.Web.UI.WebControls.ListControl definiert die grundlegenden Merkmale, die alle Listensteuerelemente kennzeichnen. Dabei kümmert sich die ListControl-Klasse vorrangig um die Fragen,
|
wo die Daten für das Steuerelement herkommen, |
|
welcher Eintrag/welche Einträge momentan selektiert ist/sind und |
|
was bei einer Selektion passieren soll. |
Die Eigenschaft DataSource nennt eine Datenquelle. Hier kann ein Array oder eine Datenbanktabelle angegeben werden. Beim Datenbankzugriff sorgen die Eigenschaften DataMember, DataTextField und DataValueField für die genauere Zuordnung von Datenbankfeldern und den ListItem-Einträgen. Details hierzu finden Sie in Kapitel 12, ASP.NET und Datenbanken.
Mit der Eigenschaft Items haben Sie den zentralen Zugriff auf alle Einträge des Listenfelds. SelectedItem nennt den momentan selektierten Eintrag und SelectedIndex kennt dessen Indexwert. Bei mehreren selektierten Einträgen wird jeweils der Eintrag mit dem niedrigsten Indexwert berücksichtigt.
Wenn der Anwender eine Selektion vornimmt, wird das Ereignis SelectedIndexChanged ausgelöst. Wenn die Eigenschaft AutoPostBack gesetzt ist, wird das Formular automatisch zum Server zurückgesandt. Die erstmalige Initialisierung des Steuerelements, z. B. das Zusammenstellen der Einträge, kann gut über das Init-Ereignis erfolgen.
| Eigenschaft
|
Typ
|
Beschreibung
|
| AutoPostBack
|
Boolean
|
Bei True wird das Formular sofort zum Server versandt, wenn der Anwender die Auswahl ändert.
|
| DataMember
|
String
|
Nennt die Tabelle aus DataSource, an die das Steuerelement gebunden wird
|
| DataSource
|
Object
|
Nennt die Datenquelle. Hier kann z. B. ein Array oder eine Tabelle angegeben werden.
|
| DataTextField
|
String
|
Nennt den Feldnamen für die Text-Eigenschaft der Listeneinträge
|
| DataTextFormatString
|
String
|
Formatierungsstring zur Formatierung der Listeneinträge
|
| DataValueField
|
String
|
Nennt den Feldnamen für die Value-Eigenschaft der Listeneinträge
|
| Items
|
ListItemCollection
|
Collection der Listeneinträge
|
| SelectedIndex
|
Integer
|
Bietet Zugriff auf den niedrigsten Indexwert der selektierten Einträge
|
| SelectedItem
|
ListItem
|
Bietet Zugriff auf den selektierten Eintrag mit dem niedrigsten Indexwert
|
| Ereignis SelectedIndexChanged
|
EventHandler
|
Tritt ein, wenn eine Auswahl geändert wird
|
Tabelle 9.1 Eigenschaften der Basisklasse ListControl
|