CheckBoxList控件


 

 

主要介紹:自定義數據、綁定數據庫數據、全選,取消全選。

 

這種方法是綁定已經給定(自定義)的字段(這種方法是綁定給定的值,就是在編寫控件時給Text賦的值):

前台代碼:

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 }

 

最終效果:

 

 

----------------------------------------------------------------

 

 

這種方法,是和數據庫(SQL Server)中的數據進行綁定,也就是從數據庫中取值顯示:

 

一:

首先,先在數據庫中建立一張表:

1 CREATE TABLE KK
2 (
3     id INT,
4     [name] VARCHAR(20),
5 )

然后插入數據:

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控件屬性和事件
1、AutoPostBack屬性:用於設置當單擊checkboxList控件時,是否自動回送到服務器。True表示回送;False(默認)表示不回送。
2、DataSource屬性:用於指定填充列表控件的數據源。
3、DataTextField屬性:指定DataSource中一個字段,該字段的值對應於列表項的Text屬性。
4、DataValueField屬性:指定DataSource中一個字段,字段的值對應於列表項的Value屬性。
5、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控件中的選項。
6、RepeatColumns屬性:用於指定在CheckBoxList控件中顯示選項占用幾列。默認值為0,表示任意多列。
7、RepeatDirection屬性:用於指定CheckBoxList控件的顯示方向。Vertical時,列表項以列優先排列的形式顯示;Horizontal時,列項以行優先排列的形式顯示。
8、RepeatLayout屬性:用於設置選項的排列方式。Table(默認)時,以表結構顯示,屬性值為Flow時,不以表結構顯示。
9、SelectedIndex屬性:用於獲取或設置列表中選定項的最低序號索引值。如果列表控件中只有一個選項被選中,則該屬性表示當前選定項的索引值。
10、SelectedItem屬性:用於獲取列表控件中索引值最小的選定項。如果列表中只有一個選項被選中,則該屬性表示當前選定項。通過該屬性可獲得選定項的Text和Value屬性值。
11:SelectedIndexchanged事件:當用戶選擇了列表中的任意復選框時,都將引發事件。

 

以上就是CheckBoxList控件的用法。

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM