Inhalt
Vorwort
1 Wie .NET und ASP.NET funktionieren
2 Installation
3 Hinweise zu VB.NET
4 »Hallo, Welt!« – Ein ASP.NET-Crashkurs
5 Die Page-Klasse
6 HTML-Serversteuerelemente
7 Validierung von Anwendereingaben
8 Webserversteuerelemente
9 Webserversteuerelemente für die Darstellung von Listen
10 Webserversteuerelemente selbst erstellen
11 Der Status von Seiten, Sitzungen und Applikationen
12 ASP.NET und Datenbanken
13 »Wer darf was?« ASP.NET und Sicherheit
14 Webanwendungen erstellen und konfigurieren
15 Leistungssteigerung durch Caching
16 Web Services
A Anhang
Index
Download (ca 14,3 MB)
Buch bestellen (29,90 EUR)
Ihre Meinung?@
<< zurück | Galileo Computing / <openbook> / Einstieg in ASP.NET | vor >>
Einstieg in ASP.NET von Matthias Lohrer
| Kapitel 9 Webserversteuerelemente für die Darstellung von Listen
|  | 9.1 Die abstrakte Basisklasse ListControl
|  | 9.2 Das ListItem-Objekt
|  | 9.3 CheckBoxList
|  |  | 9.3.1 Kontrollkästchen-Listen statisch erstellen
|  |  | 9.3.2 Kontrollkästchen-Listen dynamisch erstellen
|  |  | 9.3.3 Dynamische Datenbindung
|  | 9.4 RadioButtonList
|  | 9.5 DropDownList
|  | 9.6 ListBox
|  | 9.7 Repeater und DataList
## 9.6 ListBox
Klasse | System.Web.UI.WebControls.ListBox
Deklaration | <asp:ListBox id="myID" DataSource="<% databindingexpression %>" DataTextField="DataSource-Feld" DataValueField="DataSource-Feld" AutoPostBack="True|False" Rows="Anzahl Zeilen" SelectionMode="Single|Multiple" OnSelectedIndexChanged= "OnSelectedIndexChanged-Methode" runat="server"> <asp:ListItem value="value" selected="True|False"> Text </asp:ListItem> </asp:ListBox>
Erzeugter HTML-Code | <select name="myID" id="myID" size="Rows-Attribut"> <option value="Wert">Text</option> </select>
Kurzcharakteristik | Erzeugt ein Listenfeld. Das Attribut SelectionMode legt fest, ob ein Eintrag oder mehrere Einträge selektiert werden können. Das Attribut rows legt fest, wie viele Einträge gleichzeitig sichtbar sind.
Wenn der Anwender in einem Listenfeld nur einen einzigen Eintrag selektieren kann, dann funktioniert ein Listenfeld fast genau so wie ein Dropdown-Listenfeld. Über das Attribut SelectionMode="Multiple" können Sie aber zusätzlich die Möglichkeit anbieten, mehrere Einträge zu selektieren. Wie in Abbildung 9.3 zu sehen ist, demonstriert listen_listbox01.aspx beide Möglichkeiten.
    <!-- listen_listbox01.aspx -->
    <%@ Page Language="VB" debug="True" Strict="True" %>
    <script runat="server" >
    Sub progsprachen_Init  _
        (ByVal Sender As Object, ByVal E As EventArgs)
    Dim sprachen() As String = _
      {"Java", "C++", "Visual Basic", "Cobol", "Smalltalk"}
       progsprachen.DataSource = sprachen
       progsprachen.DataBind()
    End Sub

    Sub progsprachen_SelectedIndexChanged _
           (ByVal Sender As Object, ByVal E As EventArgs)
       Dim tmp As new StringBuilder
       Dim li as ListItem
       For Each li in progsprachen.Items
          If li.Selected Then
             tmp.Append (li.Text)
             tmp.Append (", ")
          End If
       Next
       If tmp.Length = 0 Then
          tmp.Append _
             ("Sie beherrschen keine Programmiersprachen.")
       Else
          tmp.Insert (0, "Sie kennen: ")
          tmp.Remove (tmp.Length -2 , 2)
          tmp.Append (".")
       End If
       sprachenausgabe.Text = tmp.ToString()
    End Sub

    Sub laenderliste_Init _
        (ByVal Sender As Object, ByVal E As EventArgs)
       Dim laender(,) As String = { _
          {"Baden-Württemberg", "BAW"}, _
          {"Bayern", "BAY"}, _
          {"Berlin", "BER"}, _
          {"Brandenburg", "BRA"}, _
          {"Bremen", "BRE"}, _
          {"Hamburg", "HAM"}, _
          {"Hessen", "HES"}, _
          {"Mecklenburg-Vorpommern", "MEC"}, _
          {"Niedersachsen", "NIE"}, _
          {"Nordrhein-Westfalen", "NRW"}, _
          {"Rheinland-Pfalz", "PFA"}, _
          {"Saarland", "SAR"}, _
          {"Sachsen", "SAC"}, _
          {"Sachsen-Anhalt", "ANH"}, _
          {"Schleswig-Holstein", "HOL"}, _
          {"Thüringen", "THU"} _
       }
       Dim i As Integer
       For i = 0 to laender.GetLength(0) – 1
          laenderliste.Items.Add _
             (new ListItem (laender(i,0), laender(i,1)))
       Next
    End Sub

    Sub laenderliste_SelectedIndexChanged _
        (ByVal Sender As Object, ByVal E As EventArgs)
       If laenderliste.SelectedIndex <> -1 Then
          laenderausgabe.text = "Sie kommen aus " & _
                  laenderliste.SelectedItem.Text & "."
       End If
    End Sub

    </script>
    <html><head>
    <title>Webserversteuerelemente für Listen: ListBox
    </title></head><body>
    <h3>Webserversteuerelemente für Listen: ListBox</h3>
    <h3>1. Aus welchem Bundesland kommen Sie?</h3>
    <form runat="server" id="myForm">
    <asp:ListBox id="laenderliste" runat="server"
         Rows="4"
         SelectionMode="Single"
         AutoPostBack="True"
         OnSelectedIndexChanged=
                   "laenderliste_SelectedIndexChanged"
         OnInit="laenderliste_Init" >
    </asp:ListBox>&nbsp;&nbsp;
    <asp:Label id="laenderausgabe" runat="server" />

    <h3>2. Welche Programmiersprachen beherrschen Sie?</h3>
    <asp:ListBox id="progsprachen" runat="server"
         Rows="3"
         SelectionMode="Multiple"
         AutoPostBack="True"
         OnSelectedIndexChanged=
                   "progsprachen_SelectedIndexChanged"
         OnInit="progsprachen_Init" >
    </asp:ListBox>&nbsp;
    <asp:Label id="sprachenausgabe" runat="server" />
    <br><br>
    <asp:Button id="btnOK" runat="server" Text="  OK  " />
    </form></body></html>
Hier klicken, um das Bild zu Vergrößern Abbildung 9.4 Über das Attribut SelectionMode (Single oder Multiple) steuern Sie, ob der Anwender in einer ListBox nur einen oder mehrere Einträge selektieren kann. Beide Listensteuerelemente werden jeweils über das Init-Ereignis initialisiert. Die Liste der Programmiersprachen wird über ein Array definiert, das mit der DataBind-Methode an das Listenfeld gebunden wird. Auf diese Weise erhalten die ListItem-Einträge identische Werte für Value und Text. Die Initialisierung der Liste mit den Bundesländern ist identisch mit der Initialisierung im vorangegangenen Beispiel. Je nachdem, ob nur einer oder mehrere Einträge selektiert werden können, sind für die Bearbeitung des SelectedIndexChanged-Ereignisses unterschiedliche Auswertungen nötig. Das Listenfeld für die Auswahl des Bundeslandes ist mit dem Attribut SelectionMode="Single" definiert. Damit kann die Auswertung in exakt der gleichen Form geschehen wie im vorangegangenen Beispiel für das Dropdown-Listenfeld. Erst überprüft die Prozedur mit
    If laenderliste.SelectedIndex <> -1 Then
ob überhaupt etwas selektiert wurde. Dann steht mit laenderliste.SelectedItem.Text dem direkten Zugriff auf das eine selektierte ListItem-Objekt nichts mehr im Wege. Das Listenfeld für die Angabe der Programmiersprachen erlaubt durch die Deklaration SelectionMode="Multiple" die Selektion mehrerer Einträge. Zur Auswertung bleibt Ihnen hier kein anderer Weg als das bereits bekannte »Abklappern« aller Einträge mit der jeweiligen Abfrage »Bist Du ausgewählt worden? Ja oder Nein?«
       For Each li in progsprachen.Items
          If li.Selected Then
             tmp.Append (li.Text)
             tmp.Append (", ")
          End If
       Next
Die selektierten Sprachen werden im StringBuilder-Objekt gesammelt und mit einem abschließendem Komma vom nächsten Eintrag separiert. Wenn zu Ende abgeklappert wurde, betrachtet sich der Code sein StringBuilder-Objekt näher. Ist es leer, erfolgt die Meldung Sie beherrschen keine Programmiersprachen. Andernfalls werden die bekannten Sprachen aufgelistet. Dabei ist die Prozedur richtig pingelig, denn sie ersetzt vorher noch das letzte abschließende Komma und Leerzeichen durch einen Punkt.
          tmp.Remove (tmp.Length -2 , 2)
          tmp.Append (".")
<< zurück | <top> | vor >>
Zum Katalog
Einstieg in ASP.NET bestellen
Ihre Meinung?
Wie hat Ihnen das <openbook> gefallen? Ihre Meinung

.NET-Bibliothek
| Einstieg in VB.NET
| VB.NET
| Einstieg in C#
| Visual C#
| VB.NET und Datenbanken

Empfehlung
| Einstieg in XML

Shopping
Versandkostenfrei bestellen in Deutschland und Österreich Info

MyGalileo
Der Service für registrierte Leser: Info

Copyright © Galileo Press GmbH 2003
Für Ihren privaten Gebrauch dürfen Sie die Online-Version natürlich ausdrucken. Ansonsten unterliegt das <openbook> denselben Bestimmungen, wie die gebundene Ausgabe: Das Werk einschließlich aller seiner Teile ist urheberrechtlich geschützt. Alle Rechte vorbehalten einschließlich der Vervielfältigung, Übersetzung, Mikroverfilmung sowie Einspeicherung und Verarbeitung in elektronischen Systemen.

[Galileo Computing]
Galileo Press GmbH, Gartenstraße 24, 53229 Bonn, Tel.: 0228.42150.0, Fax 0228.42150.77, info@galileo-press.de