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

複数選択のチェック ボックス グループを作成します。このコントロールは、データ ソースへの連結をサポートします。

<asp:CheckBoxList id="CheckBoxList1"
     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 value="value" 
        selected="True|False">
      Text
   </asp:ListItem>

</asp:CheckBoxList>

解説

CheckBoxList コントロールは、データ連結を使用して動的に生成できる、複数選択のチェック ボックス グループを作成します。CheckBoxList コントロールに表示する項目を指定するには、CheckBoxList コントロールの開始タグと終了タグの間に、各エントリの ListItem 要素を挿入します。

メモ   複数の CheckBox コントロールを使用することもできます。データ連結を使用してチェック ボックスのセットを作成する場合は、CheckBoxList コントロールを使用する方が簡単です。しかし、個別の CheckBox コントロールを使用する方が、レイアウトを柔軟に制御できます。

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

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

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

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

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

.aspx ファイルで CheckBoxList コントロールを宣言する方法を次の例に示します。このリストには 6 つの項目が含まれており、同時に複数の項目を選択できます。ユーザーがいずれかのボックスをオンにしたときに、ページがすぐにサーバーにポスト バックされるわけではありません。ページがポスト バックされるのは、Button クリックなどの他のイベントが発生したときです。OnSelectedIndexChanged イベントに対するメソッドが宣言されていないため、そのイベントのハンドラは呼び出されません。

<asp:CheckBoxList id="Check1"
     RepeatLayout="flow"
     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:CheckBoxList>

CheckBoxList コントロール内で選択されているチェック ボックスを確認する方法を次の例に示します。このコードは、コントロールの Items コレクションを反復処理して、各項目の Selected プロパティを調べます。その後、選択されている項目が Label コントロールに表示されます。

Sub Button1_OnClick(sender As Object, e As EventArgs)
   Dim s As String
   Dim i As Integer
   s = "Selected items:<br>"
   For i=0 to Check1.Items.Count - 1
      If Check1.Items(i).Selected Then
         s = s & Check1.Items[i].Text & "<br>"
      End If 
   Next i
   Label1.Text = s
End Sub
[C#]
void Button1_OnClick(Object sender, EventArgs e)
{
   string s;
   s = "Selected items:<br>";
   for (int i=0; i < Check1.Items.Count; i++)
   {
      if ( Check1.Items[i].Selected )
      {
         s = s + Check1.Items[i].Text + "<br>";
      }
   }
   Label1.Text = s;
}

参照

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