专注收集记录技术开发学习笔记、技术难点、解决方案
网站信息搜索 >> 请输入关键词:
您当前的位置: 首页 > WPF

dev_gridControl_CheckBox列,全选跟全不选功能的实现

发布时间:2011-06-23 13:53:57 文章来源:www.iduyao.cn 采编人员:星星草
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;
            }
        }

 

 

 

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

请多多指教!

 

友情提示:
信息收集于互联网,如果您发现错误或造成侵权,请及时通知本站更正或删除,具体联系方式见页面底部联系我们,谢谢。

其他相似内容:

热门推荐: