GridControl全选功能

来源:互联网 发布:王国风云2 mac 编辑:程序博客网 时间:2024/06/05 08:20


GridControl全选功能

GridView里面有一列定义为CheckEdit,FieldNameisChecked,数据源里面有isChecked属性

///<summary>

///实现全选功能

///</summary>

privatebool m_checkStatus = false;

 

构造函数里面写

//自己定义的GridControl里的GridView(t_gvTemplate)

 

this.t_gvTemplate.Click+=new System.EventHandler(this.gridView1_Click);

           this.t_gvTemplate.CustomDrawColumnHeader+=new DevExpress.XtraGrid.Views.Grid.ColumnHeaderCustomDrawEventHandler(this.gridView1_CustomDrawColumnHeader);

           this.t_gvTemplate.DataSourceChanged+= new EventHandler(gridView1_DataSourceChanged);

           this.t_gvTemplate.OptionsBehavior.Editable=true;

 

#region GridControl全选

privatevoid gridView1_Click(objectsender,EventArgs e)

       {

           if(ClickGridCheckBox(this.t_gvTemplate,"isChecked", m_checkStatus))

           {

               m_checkStatus = !m_checkStatus;

           }

       }

 

       privatevoidgridView1_CustomDrawColumnHeader(object sender,DevExpress.XtraGrid.Views.Grid.ColumnHeaderCustomDrawEventArgse)

       {

           if(e.Column != null && e.Column.FieldName=="isChecked")

           {

               e.Info.InnerElements.Clear();

               e.Painter.DrawObject(e.Info);

               DrawCheckBox(e, m_checkStatus);

               e.Handled = true;

           }

       }

 

       void gridView1_DataSourceChanged(object sender,EventArgse)

       {

           GridColumncolumn = this.t_gvTemplate.Columns.ColumnByFieldName("isChecked");

           if(column != null)

           {

               column.Width = 45;

               column.OptionsColumn.ShowCaption =false;

               column.ColumnEdit = new RepositoryItemCheckEdit();

           }

       }

 

privatevoid DrawCheckBox(DevExpress.XtraGrid.Views.Grid.ColumnHeaderCustomDrawEventArgs e,bool chk)

       {

           RepositoryItemCheckEditrepositoryCheck = e.Column.ColumnEditas RepositoryItemCheckEdit;

           if(repositoryCheck != null)

           {

               Graphicsg = e.Graphics;

               Rectangler = e.Bounds;

 

               DevExpress.XtraEditors.ViewInfo.CheckEditViewInfoinfo;

               DevExpress.XtraEditors.Drawing.CheckEditPainter painter;

               DevExpress.XtraEditors.Drawing.ControlGraphicsInfoArgs args;

               info =repositoryCheck.CreateViewInfo() asDevExpress.XtraEditors.ViewInfo.CheckEditViewInfo;

 

               painter =repositoryCheck.CreatePainter() as DevExpress.XtraEditors.Drawing.CheckEditPainter;

               info.EditValue = chk;

               info.Bounds = r;

               info.CalcViewInfo(g);

               args = newDevExpress.XtraEditors.Drawing.ControlGraphicsInfoArgs(info,new DevExpress.Utils.Drawing.GraphicsCache(g), r);

               painter.Draw(args);

               args.Cache.Dispose();

           }

       }

 

       privateboolClickGridCheckBox(DevExpress.XtraGrid.Views.Grid.GridViewgridView,string fieldName, bool currentStatus)

       {

           boolresult = false;

           if(gridView != null)

           {

               gridView.ClearSorting();//禁止排序

 

               gridView.PostEditor();

               DevExpress.XtraGrid.Views.Grid.ViewInfo.GridHitInfoinfo;

               Pointpt = gridView.GridControl.PointToClient(Control.MousePosition);

               info =gridView.CalcHitInfo(pt);

               if(info.InColumn && info.Column != null&& info.Column.FieldName == fieldName)

               {

                   for(int i = 0; i < gridView.RowCount; i++)

                   {

                       gridView.SetRowCellValue(i, fieldName, !currentStatus);

                   }

                   returntrue;

               }

           }

           returnresult;

       }

 

#endregion

 

///<summary>

       ///获取选取的数据集合

       ///</summary>

       privateList<Student> getRowIndexList()

       {

            List<Student> listStudent=newList<Student>();

for (int rowIndex = 0; rowIndex <this.t_gvTemplate.RowCount; rowIndex++)

           {

               objectobjValue = this.t_gvTemplate.GetRowCellValue(rowIndex,"isChecked");

               if(objValue != null)

               {

                   boolcheck = false;

                   bool.TryParse(objValue.ToString(),out check);

                   if(check)

                   {

                       //m_selectTrue.Add(rowIndex);

                       listStudent.Add(t_gvTemplate.GetRow(rowIndex)asStudent);

                   }

               }

           }

           returnlistStudent;

       }

0 0
原创粉丝点击