• dev_gridControl_CheckBox列,全选和全不选功能的实现


    关于一只菜鸟的第一篇博客、请大家多多指教!给予指导和意见!

    无图无真相,效果图如下:

    为了实现在gridcontrol插入一列checkbox,并通过表头的checkbox实现全部选中以及全部不选的效果;

    我参考了很多博客,终于用清爽的代码提炼出了我想要的清晰效果;

    1.  表头的实现:

        用了一个数据模板实现表头文字和checkbox的组合:

        Code呈上:

       

                                                       <dxg:GridControl.Columns>
                                                                <dxg:GridColumn FieldName="全选">
                                                                    <dxg:GridColumn.HeaderTemplate>
                                                                        <DataTemplate>
                                                                            <CheckBox IsChecked="False" Name="SelectAll" Checked="SelectAll_Checked"  Unchecked="SelectAll_Unchecked"                                                                             Content="全选"></CheckBox>
                                                                        </DataTemplate>
                                                                    </dxg:GridColumn.HeaderTemplate>
                                                                </dxg:GridColumn>
                                                            </dxg:GridControl.Columns>
    2、gridcontrol 的数据源的SQL数据库中的一个表,并设置一个名为【check】bit类型的字段,  将这个字段绑定上面设置的模板  "全选"   这一列;
     
      SQL语句如下:
                DataSet ds = DataUtils.DB.GetDataSetFromSQL("select [ID],[check]全选,[Solution_Name]解决方案,[LASTMODIFYUSER]修改人员,[LASTMODIFYTIME]修改时间 from SL_Device_Register_SolutionFlow")
                gridControl4.ItemsSource=ds.Tables[0];
    3、全选和全不选的实现事件:
    (通过表头的:Checked="SelectAll_Checked" Unchecked="SelectAll_Unchecked" 两个事件):
        
      实现的思想就是遍历gridcontrol中的每一个checkbox行;
      Code如下:
       
            private void SelectAll_Checked(object sender, RoutedEventArgs e)
            {
                DataTable dt =(DataTable)gridControl6.ItemsSource;
                int rowsCount = dt.Rows.Count;
                for (int i = 0; i < rowsCount;i++ )
                {  
                    string value=dt.Rows[i]["全选"].ToString();
                    value = "True";
                    dt.Rows[i]["全选"] = value;
                }
            }
    
            private void SelectAll_Unchecked(object sender, RoutedEventArgs e)
            {
                DataTable dt = (DataTable)gridControl6.ItemsSource;
                int rowsCount = dt.Rows.Count;
                for (int i = 0; i < rowsCount; i++)
                {
                    string value = dt.Rows[i]["全选"].ToString();
                    value = "false";
                    dt.Rows[i]["全选"] = value;
                }
            }
    

    这样就实现了咱们想要图中的效果!

    请多多指教!

  • 相关阅读:
    Web前端基础(1):HTML(一)
    python基础(35):协程
    python基础(34):线程(二)
    python基础(33):线程(一)
    python基础(32):进程(二)
    python基础(31):进程(一)
    python基础(30):黏包、socket的其他方法
    用keychain这个特点来保存设备唯一标识。
    判断iPhone的WiFi是否打开的两种方法 之是否连接上 WiFi
    NSStringCompareOptions
  • 原文地址:https://www.cnblogs.com/1234aa/p/5101589.html
Copyright © 2020-2023  润新知