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

 

 

 

這樣就實現了咱們想要圖中的效果!

請多多指教!

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM