9.4 RadioButtonList
 
| Klasse
|
System.Web.UI.WebControls.RadioButtonList
|
| Deklaration
|
<asp:RadioButtonList id="id"
AutoPostBack="True|False"
DataSource="<% databindingexpression %>"
DataTextField="DataSource-Feld"
DataValueField="DataSource-Feld"
RepeatColumns="Anzahl Spalten"
RepeatDirection="Vertical|Horizontal"
RepeatLayout="Flow|Table"
TextAlign="Right|Left"
OnSelectedIndexChanged=
"OnSelectedIndexChanged-Methode"
runat="server">
<asp:ListItem Text="label"
Value="value"
Selected="True|False"/>
</asp:RadioButtonList>
|
| Erzeugter HTML-Code
|
Mehrere Einträge dieser Art:
<input id="radioListe_0" type="radio" name="radioListe" value="radio1" /><label for="radioListe_0">...</label>
Je nach Einstellung bei RepeatLayout mit Hilfe einer Tabelle angeordnet oder als fließender Text
|
| Kurzcharakteristik
|
Erstellt eine Gruppe von Optionsfeldern
|
Das RadioButtonList-Steuerelement funktioniert genauso wie das CheckBoxList-Steuerelement. Der Unterschied liegt einzig und allein in der Bedienung. Der Anwender kann immer nur einen Eintrag zur gleichen Zeit selektieren. listen_radiobuttonlist01.aspx demonstriert, wie das »Radio hören«-Beispiel aus dem Abschnitt zum RadioButton mit einer RadioButtonList implementiert wird. Abbildung 9.2 zeigt die Darstellung im Browser.
<!-- listen_radiobuttonlist01.aspx -->
<%@ Page Language="VB" debug="True" Strict="True" %>
<script runat="server" >
Sub radioauswahl (ByVal Sender As Object, _
ByVal E As EventArgs)
Dim tmp As New StringBuilder()
If radioListe.selectedIndex <> -1 Then
Select Case radioListe.SelectedItem.value
Case "radio1"
tmp.Append _
("NDR2: ""An der Nordseeküste ...""")
Case "radio2"
tmp.Append ("WDR 2: ""... die Hitparade ")
tmp.Append ("aus dem Kölner Funkhaus!""")
Case "radio3"
tmp.Append ("SWR 3: ""Achtung, ")
tmp.Append ("Verkehrsfunk: Durch Baden-")
tmp.Append ("Baden läuft ein ")
tmp.Append ("Schwarzwald-Elch!""")
End Select
End If
ausgabe.text = tmp.toString
End Sub
</script>
<html><head>
<title>Webserversteuerelemente für Listen:
RadioButtonList</title>
</head><body>
<h3>Webserversteuerelemente für Listen:
RadioButtonList</h3>
<h3>Welchen Sender wollen Sie hören?</h3>
<form runat="server" id="myForm">
<asp:RadioButtonList id="radioListe" runat="server"
AutoPostBack="True"
Cellspacing="10"
RepeatColumns="3"
RepeatDirection="Horizontal"
RepeatLayout="Table"
TextAlign="Right"
OnSelectedIndexChanged="radioauswahl" >
<asp:ListItem text="NDR 2" value="radio1" />
<asp:ListItem text="WDR 2" value="radio2" />
<asp:ListItem text="SWR 3" value="radio3" />
</asp:RadioButtonList><br>
<asp:Button id="btnOK" runat="server"
Text=" OK " />
<br><br>
<asp:Label id="ausgabe" runat="server" />
</form></body></html>
 Hier klicken, um das Bild zu Vergrößern
Abbildung 9.2 Das RadioButtonList-Steuerelement erstellt eine Liste von Optionsfeldern.
Im Vergleich zur Realisierung mit drei einzelnen Optionsfeldern ist kaum ein Stein auf dem anderen geblieben. Ähnlich wie beim CheckBoxList-Beispiel umschließt das RadioButtonList-Element drei ListItem-Einträge. Die Auswahl einer Option löst das OnSelectedIndexChanged-Ereignis aus, bei dem das Skript radioauswahl ausgeführt wird. Zunächst überprüft das Skript, ob überhaupt ein Eintrag selektiert wurde:
If radioListe.selectedIndex <> -1
Ein Select Case-Statement wertet den selektierten Eintrag aus, indem es den Ausgabe-String zusammensetzt:
Select Case radioListe.SelectedItem.value
Im Vergleich zur alten Lösung wirkt diese Art der Realisierung eleganter. Durch das umschließende RadioButtonList-Steuerelement mit Eigenschaften wie SelectedItem und der Eigenschaft OnSelectedIndexChanged gewinnt man eher das Gefühl, die Aufgabe adäquat zu lösen.
|