Controllo server Web RadioButtonList

Crea un gruppo di pulsanti di opzione. Il controllo supporta l'associazione a un'origine dati.

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

Osservazioni

Il controllo RadioButtonList consente di creare un gruppo di pulsanti di opzione a selezione singola in modo dinamico, associando il controllo a un'origine dati. Per specificare gli elementi che si desidera visualizzare nel controllo RadioButtonList, inserire un elemento ListItem per ogni voce tra i tag di apertura e di chiusura del controllo RadioButtonList.

Nota È inoltre possibile utilizzare il controllo RadioButton. Con il controllo RadioButtonList la creazione di un insieme di pulsanti di opzione mediante l'associazione dati risulta più semplice; un singolo controllo RadioButton consente invece un maggiore controllo sul layout.

Anche il controllo RadioButtonList supporta l'associazione dati. Per associare il controllo a un'origine dati, è in primo luogo necessario creare un'origine dati, ad esempio un oggetto System.Collections.ArrayList, che contenga gli elementi da visualizzare nel controllo. Utilizzare quindi il metodo Control.DataBind per associare l'origine dati al controllo RadioButtonList. Utilizzare le proprietà DataTextField e DataValueField per specificare il campo dell'origine dati da associare rispettivamente alle proprietà Text e Value di ogni voce dell'elenco nel controllo. Il controllo RadioButtonList visualizzerà le informazioni dell'origine dati.

Per determinare gli elementi selezionati nel controllo RadioButtonList, scorrere l'insieme Items ed eseguire il test della proprietà Selected di ogni elemento dell'insieme.

È possibile specificare il rendering dell'elenco con le proprietà RepeatLayout e RepeatDirection. Se la proprietà RepeatLayout è impostata su RepeatLayout.Table (impostazione predefinita), il rendering dell'elenco verrà eseguito all'interno di una tabella. Se è impostata su RepeatLayout.Flow, il rendering dell'elenco sarà eseguito senza strutture tabellari. Per impostazione predefinita, RepeatDirection è impostata su RepeatDirection.Vertical. Se si imposta questa proprietà su RepeatDirection.Horizontal, il rendering dell'elenco viene eseguito orizzontalmente.

Attenzione   Il testo non viene codificato in formato HTML prima di essere visualizzato nel controllo RadioButtonList. È pertanto possibile incorporare script all'interno dei tag HTML presenti nel testo. Se i valori del controllo provengono dall'input dell'utente, assicurarsi di convalidare tali valori per evitare problemi di protezione.

Per informazioni dettagliate sulle proprietà e sugli eventi del controllo RadioButtonList vedere la documentazione di Classe RadioButtonList.

Esempio

Nell'esempio seguente viene mostrato come utilizzare un controllo RadioButtonList per offrire all'utente un insieme di opzioni che si escludono a vicenda.

<%@ 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>

Vedere anche

Controlli server Web | Classe RadioButtonList