RadioButtonList Web サーバー コントロール

オプション ボタンのグループを作成します。このコントロールは、データ ソースへの連結をサポートします。

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

解説

RadioButtonList コントロールを使用すると、データ ソースに連結することによって動的に生成される単一選択オプション ボタン グループを作成できます。RadioButtonList コントロールに表示する項目を指定するには、RadioButtonList コントロールの開始タグと終了タグの間に、各エントリの ListItem 要素を挿入します。

メモ   RadioButton コントロールを使用することもできます。データ連結を使用してオプション ボタンのセットを作成する場合は、RadioButtonList コントロールを使用する方が簡単です。しかし、個別の RadioButton コントロールを使用する方が、レイアウトを柔軟に制御できます。

RadioButtonList コントロールは、データ連結もサポートします。コントロールをデータ ソースに連結するには、まずコントロールに表示する項目を含む System.Collections.ArrayList オブジェクトなどのデータ ソースを作成します。次に、Control.DataBind メソッドを使用して、そのデータ ソースを RadioButtonList コントロールに連結します。DataTextField プロパティと DataValueField プロパティを使用して、コントロールの各リスト項目の Text プロパティと Value プロパティに連結するデータ ソース フィールドをそれぞれ指定します。これで、RadioButtonList コントロールに、データ ソースの情報が表示されるようになります。

RadioButtonList コントロールで選択された項目を判断するには、Items コレクションを反復処理して、コレクション内の各項目の Selected プロパティを調べます。

RepeatLayout プロパティと RepeatDirection プロパティを使用して、リストの表示方法を指定できます。RepeatLayoutRepeatLayout.Table (既定値) に設定されている場合、リストはテーブル内に表示されます。RepeatLayout.Flow に設定されている場合、リストはテーブル構造を使用せずに表示されます。既定では、RepeatDirectionRepeatDirection.Vertical に設定されています。このプロパティを RepeatDirection.Horizontal に設定すると、リストは水平方向に表示されます。

注意   テキストは、RadioButtonList コントロールに表示される前には HTML エンコードされません。これにより、テキストの HTML タグ内にスクリプトを埋め込むことができるようになります。コントロールの値がユーザーによって入力された場合は、セキュリティの脆弱性への対策として、入力された値を必ず検証してください。

RadioButtonList Web サーバー コントロールのプロパティとイベントの詳細については、RadioButtonList クラスのドキュメントを参照してください。

RadioButtonList コントロールを使用して、一度に 1 つしか選択できない複数のオプション ボタンのグループを作成する方法を次の例に示します。

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

参照

Web サーバー コントロール | RadioButtonList クラス