RadioButtonList-Webserversteuerelement
Erstellt eine Gruppe von runden Optionsschaltflächen. Dieses Steuerelement unterstützt die Bindung an eine Datenquelle.
<asp:RadioButtonListid="RadioButtonList1" AutoPostBack="True|False" CellPadding="Pixels" DataSource="<% databindingexpression %>" DataTextField="DataSourceField" DataValueField="DataSourceField" RepeatColumns="ColumnCount" RepeatDirection="Vertical|Horizontal" RepeatLayout="Flow|Table" TextAlign="Right|Left" OnSelectedIndexChanged="OnSelectedIndexChangedMethod" runat="server"> <asp:ListItem Text="label" Value="value" Selected="True|False" /></asp:RadioButtonList>
Hinweise
Mit dem RadioButtonList-Steuerelement können Sie eine Gruppe von runden Optionsschaltflächen für die Auswahl lediglich einer Option erstellen. Diese Gruppe kann durch Binden an eine Datenquelle dynamisch erstellt werden. Um die im RadioButtonList-Steuerelement darzustellenden Elemente anzugeben, platzieren Sie für jeden Eintrag ein ListItem-Element zwischen das öffnende und das schließende Tag des RadioButtonList-Steuerelements.
Hinweis Sie können auch das RadioButton-Steuerelement verwenden. Das RadioButtonList-Steuerelement eignet sich besser zum Erstellen einer Gruppe von runden Optionsschaltflächen mit Datenbindung, während Sie bei einem einzelnen RadioButton-Steuerelement mehr Möglichkeiten für die Layoutgestaltung haben.
Das RadioButtonList-Steuerelement unterstützt auch die Datenbindung. Um das Steuerelement an eine Datenquelle zu binden, erstellen Sie zuerst eine Datenquelle, z. B. ein System.Collections.ArrayList-Objekt, die die im Steuerelement darzustellenden Elemente enthält. Danach binden Sie die Datenquelle mit Hilfe der Control.DataBind-Methode an das RadioButtonList-Steuerelement. Geben Sie mit Hilfe der Eigenschaften DataTextField und DataValueField an, welches Feld in der Datenquelle jeweils an die Eigenschaften Text und Value der einzelnen Listenelemente in dem Steuerelement gebunden werden soll. Das RadioButtonList-Steuerelement zeigt nun die Informationen aus der Datenquelle an.
Um zu ermitteln, welche Elemente im RadioButtonList-Steuerelement ausgewählt sind, iterieren Sie durch die Items-Auflistung und testen die Selected-Eigenschaft jedes Elements in der Auflistung.
Mit Hilfe der Eigenschaften RepeatLayout und RepeatDirection können Sie festlegen, wie die Liste dargestellt werden soll. Wenn RepeatLayout auf RepeatLayout.Table gesetzt ist (Standardeinstellung), wird die Liste in einer Tabelle dargestellt. Wenn RepeatLayout auf RepeatLayout.Flow gesetzt ist, wird für die Darstellung der Liste keine tabellarische Struktur verwendet. Standardmäßig ist RepeatDirection auf RepeatDirection.Vertical gesetzt. Wenn Sie diese Eigenschaft auf RepeatDirection.Horizontal setzen, wird die Liste in horizontaler Richtung dargestellt.
Vorsicht Text wird nicht in HTML codiert, bevor er im RadioButtonList-Steuerelement angezeigt wird. Auf diese Weise können Skripts in HTML-Tags in den Text eingebunden werden. Wenn die Werte in diesem Steuerelement aus Benutzereingaben stammen, müssen die Werte unbedingt geprüft werden, um die Sicherheit zu gewährleisten.
Weitere Informationen zu den Eigenschaften und Ereignissen des RadioButtonList-Webserversteuerelements finden Sie unter RadioButtonList-Klasse.
Beispiel
Das folgende Beispiel veranschaulicht, wie mit einem RadioButtonList-Steuerelement eine Gruppe von sich gegenseitig ausschließenden Optionen für den Benutzer bereitgestellt wird.
<%@ Page Language="VB" AutoEventWireup="True" %>
<html>
<head>
<script language="VB" runat="server">
Sub Button1_Click(Source As Object, e As EventArgs)
If RadioButtonList1.SelectedIndex > - 1 Then
Label1.Text = "You selected: " & _
RadioButtonList1.SelectedItem.Text
End If
End Sub
Sub chkLayout_CheckedChanged(sender As Object, e As EventArgs)
If chkLayout.Checked = True Then
RadioButtonList1.RepeatLayout = RepeatLayout.Table
Else
RadioButtonList1.RepeatLayout = RepeatLayout.Flow
End If
End Sub
Sub chkDirection_CheckedChanged(sender As Object, e As EventArgs)
If chkDirection.Checked = True Then
RadioButtonList1.RepeatDirection = RepeatDirection.Horizontal
Else
RadioButtonList1.RepeatDirection = RepeatDirection.Vertical
End If
End Sub
</script>
</head>
<body>
<form runat="server">
<h3>RadioButtonList Example</h3>
<asp:RadioButtonList id=RadioButtonList1 runat="server">
<asp:ListItem>Item 1</asp:ListItem>
<asp:ListItem>Item 2</asp:ListItem>
<asp:ListItem>Item 3</asp:ListItem>
<asp:ListItem>Item 4</asp:ListItem>
<asp:ListItem>Item 5</asp:ListItem>
<asp:ListItem>Item 6</asp:ListItem>
</asp:RadioButtonList>
<p>
<asp:CheckBox id="chkLayout"
OnCheckedChanged="chkLayout_CheckedChanged"
Text="Display Table Layout"
Checked=true AutoPostBack="true"
runat="server" />
<br>
<asp:CheckBox id="chkDirection"
OnCheckedChanged="chkDirection_CheckedChanged"
Text="Display Horizontally"
AutoPostBack="true"
runat="server" />
<p>
<asp:Button id="Button1"
Text="Submit"
OnClick="Button1_Click"
runat="server"/>
<p>
<asp:Label id="Label1"
Font-Name="Verdana"
Font-Size="8pt"
runat="server"/>
</form>
</body>
</html>
[C#]
<%@ Page Language="C#" AutoEventWireup="True" %>
<html>
<head>
<script runat="server">
void Button1_Click(object Source, EventArgs e)
{
if (RadioButtonList1.SelectedIndex > -1)
{
Label1.Text = "You selected: " +
RadioButtonList1.SelectedItem.Text;
}
}
void chkLayout_CheckedChanged(Object sender, EventArgs e)
{
if (chkLayout.Checked == true)
{
RadioButtonList1.RepeatLayout = RepeatLayout.Table;
}
else
{
RadioButtonList1.RepeatLayout = RepeatLayout.Flow;
}
}
void chkDirection_CheckedChanged(Object sender, EventArgs e)
{
if (chkDirection.Checked == true)
{
RadioButtonList1.RepeatDirection = RepeatDirection.Horizontal;
}
else
{
RadioButtonList1.RepeatDirection = RepeatDirection.Vertical;
}
}
</script>
</head>
<body>
<form runat="server">
<h3>RadioButtonList Example</h3>
<asp:RadioButtonList id=RadioButtonList1 runat="server">
<asp:ListItem>Item 1</asp:ListItem>
<asp:ListItem>Item 2</asp:ListItem>
<asp:ListItem>Item 3</asp:ListItem>
<asp:ListItem>Item 4</asp:ListItem>
<asp:ListItem>Item 5</asp:ListItem>
<asp:ListItem>Item 6</asp:ListItem>
</asp:RadioButtonList>
<p>
<asp:CheckBox id="chkLayout"
OnCheckedChanged="chkLayout_CheckedChanged"
Text="Display Table Layout"
Checked=true AutoPostBack="true"
runat="server"/>
<br>
<asp:CheckBox id="chkDirection"
OnCheckedChanged="chkDirection_CheckedChanged"
Text="Display Horizontally"
AutoPostBack="true"
runat="server"/>
<p>
<asp:Button id="Button1"
Text="Submit"
OnClick="Button1_Click"
runat="server"/>
<p>
<asp:Label id="Label1"
Font-Name="Verdana"
Font-Size="8pt"
runat="server"/>
</form>
</body>
</html>