• 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事件
  • 相关阅读:
    C语言堆栈入门——堆和栈的区别
    Unity时钟定时器插件——Vision Timer源码分析之一
    UNITY3D 2D物流流体插件下载|Liquid Physics 2D
    Unity3d插件Master Audio AAA Sound v3.5
    游戏行业的女性拥有强大的新盟友:Facebook
    Unity游戏设计与实现 南梦宫一线程序员的开发实例
    Unity4.6证书激活问题
    里诺全系列注册机+暗桩patch
    冰点还原8.53破解版
    NSE: known a priori estimate
  • 原文地址:https://www.cnblogs.com/mengzhixingping/p/4463109.html
Copyright © 2020-2023  润新知