DEV控件中GridView中的复选框与CheckBox实现联动的全选功能

最初的界面图如图1-1(全选框ID: cb_checkall  DEV控件名称:gcCon ):

要实现的功能如下图(1-2  1-3  1-4)及代码所示:

图1-2

图1-3

图1-4

O(∩_∩)O哈哈~

不要着急哦,看清要实现的功能后我们来上代码啦!!

 1     //全局变量 0:表格中的数据没有全部选中 1:表格中的数据全部选中
 2     public int iCheckAll=0;
 3     private void repositoryItemCheckEdit1_CheckedChanged(object sender, EventArgs e)
 4         {
 5             CheckEdit chkCheck = (sender as CheckEdit);
 6             DataRow dr = gridView1.GetFocusedDataRow();
 7             if (chkCheck.CheckState == CheckState.Checked)
 8             {
 9                 dr["IS_CHECK"] = "1";
10             }
11             else
12             {
13                 dr["IS_CHECK"] = "0";
14 
15             }
16 
17             //增加全部选择时,全选按钮应该勾选上
18             DataTable dt = gcCon.DataSource as DataTable;
19            
20             //判断如果GridView中按钮都全选了,把全选按钮也设置为选中状态 
21             DataRow[] drTemp = dt.Select("IS_CHECK=0 OR IS_CHECK IS NULL");
22             if (drTemp.Length > 0)
23             {
24                 //没有全部选中
25                 iCheckAll = 0;
26                 cb_checkall.CheckState = CheckState.Unchecked;
27             }
28             else
29             {
30                 iCheckAll = 1;
31                 cb_checkall.CheckState = CheckState.Checked;
32             }
33            
34         
35 
36         }
表格中复选框的CheckedChanged事件
 1   private void cb_checkall_CheckedChanged(object sender, EventArgs e)
 2         {
 3 
 4             DataTable dt = gcCon.DataSource as DataTable;
 5          
 6             //优化 增加判断dt为null的条件
 7             if (dt != null)
 8             {
 9                 if (cb_checkall.Checked == true)
10                 {
11                     foreach (DataRow item in dt.Rows)
12                     {
13                         item["IS_CHECK"] = "1";
14                     }
15                     iCheckAll = 1;
16                 }
17                 else
18                 {
19                     if (iCheckAll == 0)
20                     {
21                        //表格中的数据没有全部选中时  设置全选框的的状态为FALSE  (觉得这个条件可以不要,可以试下哦O(∩_∩)O哈哈~)
22                         DataRow[] drMM = dt.Select("IS_CHECK=0 OR IS_CHECK IS NULL");
23                         if (drMM.Length > 0)
24                         {
25                             cb_checkall.Checked = false;
26                         }
27                     }
28                     else if (iCheckAll==1)
29                     {
30                        
31                          //表格中的数据是全选中状态时,取消全选时,设置表格中的标识为不选中的状态
32                         foreach (DataRow item in dt.Rows)
33                         {
34                             item["IS_CHECK"] = "0";
35                         }
36                     }
37                   
38                   
39                 }
40 
41             }
42             else
43             {
44                 //判断条件
45                 MessageBox.Show("没有可供选择的数据", "提示!");
46                 cb_checkall.Checked = false;
47             }
48 
49         }
全选框的CheckedChanged事件
原文地址:https://www.cnblogs.com/mengzhixingping/p/4463109.html