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

时间:2022-02-07 09:27:05

 

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

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

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;
}
}

 

 

 

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

请多多指教!