Share via


RadioButtonList (Control de servidor Web)

Crea un grupo de botones de opción. Este control admite el enlace a un origen de datos.

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

Comentarios

El control RadioButtonList permite crear un grupo de botones de opción de selección única cuya creación puede realizarse dinámicamente enlazando el control a un origen de datos. Para especificar los elementos que van a aparecer en el control RadioButtonList, coloque un elemento ListItem, por cada entrada, entre las etiquetas de apertura y de cierre del control RadioButtonList.

Nota   También se puede utilizar el control RadioButton. El control RadioButtonList es más fácil de usar para crear un conjunto de botones de opción mediante el enlace de datos, mientras que un control RadioButton individual permite un mayor control del diseño.

El control RadioButtonList admite asimismo el enlace de datos. Para enlazar el control a un origen de datos, cree primero un origen de datos, como un objeto System.Collections.ArrayList, que contenga los elementos que se van a mostrar en el control. A continuación, utilice el método Control.DataBind para enlazar el origen de datos al control RadioButtonList. Utilice las propiedades DataTextField y DataValueField para especificar el campo del origen de datos que se va a enlazar a las propiedades Text y Value, respectivamente, de cada elemento de lista del control. Ahora, el control RadioButtonList mostrará la información del origen de datos.

Para determinar los elementos seleccionados en el control RadioButtonList, realice iteraciones en la colección Items y pruebe la propiedad Selected de cada elemento de la colección.

El procesamiento de la lista puede especificarse con las propiedades RepeatLayout y RepeatDirection. Si RepeatLayout se establece en RepeatLayout.Table (valor predeterminado), la lista se procesará en una tabla. Si se establece en RepeatLayout.Flow, la lista se procesará sin estructura de tabla. De forma predeterminada, RepeatDirection se establece en RepeatDirection.Vertical. Establecer esta propiedad en RepeatDirection.Horizontal generará la lista horizontalmente.

PRECAUCIÓN   El texto no se codifica en HTML antes de mostrarse en el control RadioButtonList. Esto permite incrustar una secuencia de comandos en las etiquetas HTML del texto. Si los valores del control provienen de la entrada del usuario, asegúrese de validar los valores para evitar puntos vulnerables en la seguridad.

Para obtener más información sobre los eventos y propiedades del control de servidor Web RadioButtonList, vea la documentación referente a RadioButtonList (Clase).

Ejemplo

En el siguiente ejemplo se muestra cómo usar un control RadioButtonList para mostrar al usuario un conjunto de opciones que se excluyen mutuamente.

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

Vea también

Controles de servidor Web | RadioButtonList (Clase)