主要介紹:自定義數據、綁定數據庫數據、全選,取消全選。html
這種方法是綁定已經給定(自定義)的字段(這種方法是綁定給定的值,就是在編寫控件時給Text賦的值):web
前臺代碼:sql
1 <asp:CheckBoxList ID="CheckBoxList1" runat="server"> 2 <asp:ListItem Text ="蘋果"></asp:ListItem> 3 <asp:ListItem Text ="檸檬"></asp:ListItem> 4 <asp:ListItem Text ="橘子"></asp:ListItem> 5 <asp:ListItem Text ="桃子"></asp:ListItem> 6 </asp:CheckBoxList> 7 <asp:Button ID="Button1" runat="server" Text="結果" OnClick ="Button1_Click"/> 8 <asp:Label ID="Label1" runat="server" Text=""></asp:Label>
後臺代碼:數據庫
1 /// <summary> 2 /// Button單擊事件 3 /// </summary> 4 /// <param name="sender"></param> 5 /// <param name="e"></param> 6 protected void Button1_Click(object sender, EventArgs e) 7 { 8 string s = string.Empty; 9 10 for (int i = 0; i < this.CheckBoxList1.Items.Count; i++) 11 { 12 if (this.CheckBoxList1.Items[i].Selected) 13 { 14 s += this.CheckBoxList1.Items[i].Text + " "; 15 } 16 } 17 this.Label1.Text = "你選擇的水果有:" + s; 18 }
最終效果:服務器
----------------------------------------------------------------post
這種方法,是和數據庫(SQL Server)中的數據進行綁定,也就是從數據庫中取值顯示:this
一:spa
首先,先在數據庫中創建一張表:code
1 CREATE TABLE KK 2 ( 3 id INT, 4 [name] VARCHAR(20), 5 )
而後插入數據:server
1 INSERT INTO KK (id, [name]) VALUES (1, '張三') 2 INSERT INTO KK (id, [name]) VALUES (2, '李四') 3 INSERT INTO KK (id, [name]) VALUES (3, '王五') 4 INSERT INTO KK (id, [name]) VALUES (4, '趙六')
這是最終創建的表:
二:
而後是前臺代碼:
1 <asp:CheckBoxList ID="CheckBoxList1" runat="server" AutoPostBack ="true"></asp:CheckBoxList> 2 <asp:Button ID="Button1" runat="server" Text="結果" OnClick ="Button1_Click"/><br /><br /> 3 <asp:Label ID="Label1" runat="server" Text=""></asp:Label>
*解說:CheckBoxList控件,若是要是在後臺代碼之中綁定數據,那麼在前臺代碼作任何修改。
其中,AutoPostBack要爲true纔可。
後臺代碼:
web.config中數據庫鏈接字符串:
1 <connectionStrings> 2 <add name="connectionString" connectionString="data source = (local); database = TEMP; integrated security = true"/> 3 </connectionStrings>
後臺之中Page_load中的代碼(代碼初始化,用於打開界面是就進行數據綁定):
1 protected void Page_Load(object sender, EventArgs e) 2 { 3 if (!IsPostBack) 4 /* 爲何判斷IsPostBack:當你須要執行一些僅須要在頁面第一次瀏覽時執行的事件 5 * 好比頁面初始化,數據綁定之類的操做時,須要將操做放在if(!IspostBack)裏面, 6 * 這樣當你在點擊頁面中的按鈕或者執行其餘回發事件時,不貴再次初搜索始化或者 7 * 重複綁定數據,提升了執行效率。 8 */ 9 { 10 string connectionString = ConfigurationManager.ConnectionStrings["connectionString"].ConnectionString; 11 12 SqlConnection connection = new SqlConnection(connectionString); 13 14 connection.Open(); 15 16 string sql = "SELECT * FROM KK"; 17 18 SqlCommand cmd = new SqlCommand(sql, connection); 19 20 SqlDataReader sdr = cmd.ExecuteReader(); 21 22 //任意給的字段名,只要是想顯示在界面上的就行。其值給了:Text 23 this.CheckBoxList1.DataTextField = "name"; 24 25 //任意給得字段名,只要是想在後臺看到前臺看不到的數據就行。其值給了:Value 26 this.CheckBoxList1.DataValueField = "id"; 27 28 this.CheckBoxList1.DataSource = sdr; 29 30 this.CheckBoxList1.DataBind(); 31 32 sdr.Close(); 33 34 connection.Close(); 35 } 36 }
其中,檢查網頁是否會發很重要。if (!IsPostBack)。若是沒有這個,將沒法使用。
後臺之中Button(結果)按鈕:
1 /// <summary> 2 /// Button單擊事件 3 /// </summary> 4 /// <param name="sender"></param> 5 /// <param name="e"></param> 6 protected void Button1_Click(object sender, EventArgs e) 7 { 8 string s = string.Empty; 9 10 for (int i = 0; i < CheckBoxList1.Items.Count; i++) 11 { 12 if (this.CheckBoxList1.Items[i].Selected) 13 { 14 s += " 界面上能看到的值(對應控上的Text屬性): " 15 + this.CheckBoxList1.Items[i].Text.ToString() 16 17 + "<br/>界面上看不到的值,源程序中能看到(對應控件上的Value屬性):" 18 + this.CheckBoxList1.Items[i].Value.ToString() + "<br/><br/>"; 19 } 20 } 21 22 this.Label1.Text = s; 23 }
最終運行效果:
----------------------------------------------------------------
全選和取消全選:
首先要在前臺中加一個CheckBox控件,用來控制是否全選:
1 <asp:CheckBoxList ID="CheckBoxList1" runat="server" AutoPostBack ="true"></asp:CheckBoxList><br /><br /> 2 3 <asp:CheckBox ID ="checkbox1" runat ="server" Text ="全選" AutoPostBack ="true" OnCheckedChanged ="checkbox1_CheckedChanged1"/> 4 5 <asp:Button ID="Button1" runat="server" Text="結果" OnClick ="Button1_Click"/><br /><br /> 6 <asp:Label ID="Label1" runat="server" Text=""></asp:Label>
*解說:下劃線標註的代碼就是添加的CheckBox控件,用來決定是否全選。其中OnCheckedChange事件決定當選擇改變時執行什麼代碼。
其中,設置:AutoPostBack ="true" 很重要。
而後是後臺代碼(checkbox1_CheckedChanged1事件):
1 /// <summary> 2 /// checkbox1_CheckedChanged1當選擇改變時執行相應的代碼 3 /// </summary> 4 /// <param name="sender"></param> 5 /// <param name="e"></param> 6 protected void checkbox1_CheckedChanged1(object sender, EventArgs e) 7 { 8 if (this.checkbox1.Checked) 9 { 10 for (int j = 0; j < this.CheckBoxList1.Items.Count; j++) 11 { 12 this.CheckBoxList1.Items[j].Selected = true;//所有設置爲選中 13 } 14 } 15 else 16 { 17 for (int k = 0; k < this.CheckBoxList1.Items.Count; k++) 18 { 19 this.CheckBoxList1.Items[k].Selected = false;//所有設置爲未選中 20 } 21
最終執行效果:
選中:
未選中:
----------------------------------------------------------------
最後附上CheckBoxList控件的屬性和事件列表(此內容摘自:http://www.cnblogs.com/huangqing/articles/2226353.html):
CheckBoxList控件屬性和事件
一、AutoPostBack屬性:用於設置當單擊checkboxList控件時,是否自動回送到服務器。True表示回送;False(默認)表示不回送。
二、DataSource屬性:用於指定填充列表控件的數據源。
三、DataTextField屬性:指定DataSource中一個字段,該字段的值對應於列表項的Text屬性。
四、DataValueField屬性:指定DataSource中一個字段,字段的值對應於列表項的Value屬性。
五、Items屬性:表示複選框列表中各個選項的集合,如CheckBoxList1.Items(i)表示第i個選項,i從0開始。每一個選項都有如下3個基本屬性:
Text屬性:表示每一個選項的文本。
Value屬性:表示每一個選項的選項值。
Selected屬性:表示該選項是否被選中。
Count屬性:經過Items.Count屬性可得到CheckBoxList控件的選項數;
Add方法:經過items.Add方法能夠向CheckBoxList控件添加選項;
Remove方法:經過items.Remove方法,可從CheckBoxList控件中刪除指定的選項;
Insert方法:經過items.insert方法,可將一個新的選項插入到CheckBoxList控件中;
Clear方法:經過items.clear方法能夠清空CheckBoxList控件中的選項。
六、RepeatColumns屬性:用於指定在CheckBoxList控件中顯示選項佔用幾列。默認值爲0,表示任意多列。
七、RepeatDirection屬性:用於指定CheckBoxList控件的顯示方向。Vertical時,列表項以列優先排列的形式顯示;Horizontal時,列項以行優先排列的形式顯示。
八、RepeatLayout屬性:用於設置選項的排列方式。Table(默認)時,以表結構顯示,屬性值爲Flow時,不以表結構顯示。
九、SelectedIndex屬性:用於獲取或設置列表中選定項的最低序號索引值。若是列表控件中只有一個選項被選中,則該屬性表示當前選定項的索引值。
十、SelectedItem屬性:用於獲取列表控件中索引值最小的選定項。若是列表中只有一個選項被選中,則該屬性表示當前選定項。經過該屬性可得到選定項的Text和Value屬性值。
11:SelectedIndexchanged事件:當用戶選擇了列表中的任意複選框時,都將引起事件。
以上就是CheckBoxList控件的用法。