建立多重選取的核取方塊群組。這個控制項支援繫結至資料來源。
<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 控制項中的項目 (Item),請將每一項目 (Entry) 的 ListItem 項目 (Element) 置於 CheckBoxList 控制項的開始和結束標記之間。
**注意 **您也可以使用多個 CheckBox 控制項。CheckBoxList 控制項比較適合於使用資料繫結來建立核取方塊組,而個別的 CheckBox 控制項則可讓您對配置有較好的控制。
CheckBoxList 控制項也支援資料繫結。若要將控制項繫結至資料來源,請先建立含有要在控制項中顯示之項目的資料來源,例如 System.Collections.ArrayList 物件。然後,使用 Control.DataBind 方法將資料來源繫結至 CheckBoxList 控制項。使用 DataTextField 和 DataValueField 屬性來指定資料來源中哪個欄位要分別繫結至控制項中每一清單項目的 Text 和 Value 屬性。CheckBoxList 控制項不會顯示來自資料來源的資訊。
若要判斷 CheckBoxList 控制項中的選取項目,請在 Items 集合中重複並且測試集合中每一項目的 Selected 屬性。
您可以使用 RepeatLayout 和 RepeatDirection 屬性來指定清單的顯示方式。如果 RepeatLayout 是設定為 RepeatLayout.Table (預設的設定值),清單便會在表格中呈現。如果將它設定為 RepeatLayout.Flow,清單將以不具任何表格結構的方式呈現。根據預設,RepeatDirection 是設定為 RepeatDirection.Vertical。將這個屬性設定為 RepeatDirection.Horizontal 會以水平方式呈現清單。
**警告 **文字顯示於 CheckBoxList 控制項前,並不是 HTML 編碼。這樣便可以在文字中的 HTML 標記內嵌入指令碼。如果控制項的值來自使用者輸入,請務必驗證值來協助防止安全性的弱點。
如需 CheckBoxList Web 伺服器控制項之屬性和事件的詳細資訊,請參閱 CheckBoxList 類別文件。
範例
以下所示為 .aspx 檔案中 CheckBoxList 控制項的範例宣告。清單中含有六個不會互斥的項目。當使用者選取某一個方塊時,網頁並不會立即回傳給伺服器 (網頁要一直等到發生像是按鈕被按一下之類的某些其他事件時才會回傳)。沒有任何 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;
}