DevTrain

Autor: Hannes Preishuber

ASP .NET Listbox trifft Daten

Einer der größeren Vorteile der ASP .NET Web Server Controls ist die Möglichkeit diese an Daten zu binden. Wir nehmen uns in diesem Artikel die Listbox vor und betrachten deren Möglichkeiten näher.

Eine Listbox ist hervorragend geeignet um eine kleinere Menge an Daten mit nur einer Textspalte anzuzeigen. Im folgenden der Code für die ASP Seite.
<asp:ListBox id="lBoxDept" runat="server" Width="152px" Height="332px"></asp:ListBox>
 
Die Daten werden dann zur Laufzeit der Datasource Eigenschaft zugewiesen. Man kann aber auch zur Entwurfszeit diese Zuweisung vornehmen.
Das Feld, das angezeigt werden soll wird über DataTextField definiert. Davon abweichend kann ein Schlüsselwert über das DataValueField zugewiesen werden. Ein typischer Beispiel dazu ist, einen  Ort als anzuzeigen und die PLZ als Key zu verwenden. Man darf nciht vergessen die Databind Methode aufzurufen um das ganze zu aktivieren.
Dim DS As DataSet
Dim MyCmd As SqlDataAdapter
Dim MyConnection As SqlConnection
MyConnection = New SqlConnection(ConfigurationSettings.AppSettings("DBCon"))
Dim sql As String = "select * from toner_dept where dept_main=" & i.ToString & ""
MyCmd = New SqlDataAdapter(sql, MyConnection)
DS = New DataSet()
MyCmd.Fill(DS, "produkte")
lBoxDept.DataSource = DS.Tables(0).DefaultView
lBoxDept.DataTextField = "dept_name"
lBoxDept.DataValueField = "dept_id"
lBoxDept.DataBind()

  
Es gibt nun zwei Möglichkeiten an den gewählten Eintrag der Listbox ranzukommen.
Event
Wenn die Eigenschaft Autopostback gesetzt ist, wird bei jeden Click in die Listbox ein Roundtrip durchgeführt. Zur Behandlung verwenden Sie dann das Event SelectedIndexChanged.
Ausgewählter Index
Wenn Sie Daten aus einem Eingabeformular speichern wollen, ist das Event die ungeeignete Methode.
Dafür kann über SelectedIndex der Eintrag als Nummer (beginnend bei 0) ausgegeben werden.
Das eigentliche gewählte Item wird über SelectedItem ausgegeben.
lBoxDept.SelectedItem.Value
lBoxDept.SelectedItem.Text
 
Zur visuellen Gestaltung stehen neben Width und Heigth auch die Eigenschaft Rows bereit, die es erlaubt die Box auf eine bestimmte Zeilenanzahl einzustellen. Wenn mehr Einträge in der Liste sind, wird ein Scrollbalken eingeblendet.
Auswahl vorbelegen
Die Eigenschaft SelectedIndex kann auch beschrieben werden und bewirkt eine Vorbelegung der Auswahl. Diese erscheint dann auch, wenn mehr Einträge vorhanden sind, als angezeigt werden, an erster Stelle.
Natürlich kann einer Listbox über Additem auch noch nachträglich Einträge hinzugefügt werden.
Eine SelectBox erlaubt über das Proberty Selection Mode lässt sich ein Mehrfachauswahl einstellen. Die gewählten Einträge werden dann als Collection geliefert.
For i = 0 To checkboxlist1.Items.Count - 1
     If checkboxlist1.Items(i).Selected Then
.....
       End If
Next

 
 

Erfasst am: 29.04.2002 - Artikel-URL: http://www.devtrain.de/news.aspx?artnr=757
© Copyright 2003 ppedv AG - http://www.ppedv.de