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 IndexWenn 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 |