關於一隻菜鳥的第一篇博客、請大家多多指教!給予指導和意見!無圖無真相,效果圖如下:為了實現在gridcontrol插入一列checkbox,並通過表頭的checkbox實現全部選中以及全部不選的效果;我參考了很多博客,終於用清爽的代碼提煉出了我想要的清晰效果;1. 表頭的實現: 用了一個數據模板實....
關於一隻菜鳥的第一篇博客、請大家多多指教!給予指導和意見!
無圖無真相,效果圖如下:
為了實現在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; } }
這樣就實現了咱們想要圖中的效果!
請多多指教!