说明:

GirdControl 中加入一列,这一列不是写在数据库中的,而是代码中加入的。

图示:

底层类代码:

#region GridControl 全选/// <summary>/// 是否选中/// </summary>private static bool chkState = false;//复选框列名称private static string chkFileName = "";//复选框列宽private static int chkWidth = 30;//GridView public static DevExpress.XtraGrid.Views.Grid.GridView GView = null;private DevExpress.XtraGrid.Views.Grid.GridView gView {get {if (GView == null){GView = new DevExpress.XtraGrid.Views.Grid.GridView();}return GView;}set {this.gView = value;}} public static void GridCheckEdit(DevExpress.XtraGrid.Views.Grid.GridView gv, string checkFileName, int checkWidth){if (gv != null) {                chkFileName = checkFileName;chkWidth = checkWidth;GView = gv;//不显示复选框的列标题gv.Columns[chkFileName].OptionsColumn.ShowCaption = false;//复选框的形状   gv.Columns[chkFileName].ColumnEdit 实例是 repositoryItemCheckEdit1              //repositoryItemCheckEdit1.CheckStyle = DevExpress.XtraEditors.Controls.CheckStyles.Standard;复选框载入的状态     实心   空心   空心打勾//repositoryItemCheckEdit1.NullStyle = DevExpress.XtraEditors.Controls.StyleIndeterminate.Unchecked;//点击事件gv.Click += new System.EventHandler(gv_Click);//画列头CheckEditgv.CustomDrawColumnHeader += new DevExpress.XtraGrid.Views.Grid.ColumnHeaderCustomDrawEventHandler(gv_CustomDrawColumnHeader);gv.DataSourceChanged += new EventHandler(gv_DataSourceChanged);}}private static void gv_Click(object sender, EventArgs e){if (ClickGridCheckBox(GView, chkFileName, chkState)){chkState = !chkState;}}private static void gv_CustomDrawColumnHeader(object sender, DevExpress.XtraGrid.Views.Grid.ColumnHeaderCustomDrawEventArgs e){if (e.Column != null && e.Column.FieldName ==chkFileName){e.Info.InnerElements.Clear();e.Painter.DrawObject(e.Info);DrawCheckBox(e, chkState);e.Handled = true;} }private static void gv_DataSourceChanged(object sender, EventArgs e){DevExpress.XtraGrid.Columns.GridColumn column = GView.Columns.ColumnByFieldName(chkFileName);if (column != null){column.Width = chkWidth;column.OptionsColumn.ShowCaption = false;column.ColumnEdit = new DevExpress.XtraEditors.Repository.RepositoryItemCheckEdit();} }private static void DrawCheckBox(DevExpress.XtraGrid.Views.Grid.ColumnHeaderCustomDrawEventArgs e, bool chk){DevExpress.XtraEditors.Repository.RepositoryItemCheckEdit repositoryCheck = e.Column.ColumnEdit as DevExpress.XtraEditors.Repository.RepositoryItemCheckEdit;if (repositoryCheck != null){System.Drawing.Graphics g = e.Graphics;System.Drawing.Rectangle r = e.Bounds;DevExpress.XtraEditors.ViewInfo.CheckEditViewInfo info;DevExpress.XtraEditors.Drawing.CheckEditPainter painter;DevExpress.XtraEditors.Drawing.ControlGraphicsInfoArgs args;info = repositoryCheck.CreateViewInfo() as DevExpress.XtraEditors.ViewInfo.CheckEditViewInfo;painter = repositoryCheck.CreatePainter() as DevExpress.XtraEditors.Drawing.CheckEditPainter;info.EditValue = chk;info.Bounds = r;info.CalcViewInfo(g);args = new DevExpress.XtraEditors.Drawing.ControlGraphicsInfoArgs(info, new DevExpress.Utils.Drawing.GraphicsCache(g), r);painter.Draw(args);args.Cache.Dispose();}}private static bool ClickGridCheckBox(DevExpress.XtraGrid.Views.Grid.GridView gridView, string fieldName, bool currentStatus){bool result = false;if (gridView != null){//禁止排序 gridView.ClearSorting();gridView.PostEditor();DevExpress.XtraGrid.Views.Grid.ViewInfo.GridHitInfo info;System.Drawing.Point pt = 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);}return true;}}return result;} #endregion

前台调用:

注意:GridControl绑定前。手动添加一列。添加完毕之后,在绑定。

   //加入一列dt.Columns.Add("chk", System.Type.GetType("System.Boolean"));dt.Columns["chk"].DefaultValue = Boolean.FalseString;gridControl1.DataSource = dt;Functionjsj.GridCheckEdit(gv, "chk", 50);

chk 图例:

转载于:https://www.cnblogs.com/jzssuanfa/p/6795660.html

GridControl 选择列、复选框全选(上)相关推荐

  1. 复选框全选效果,根据单个复选框的选择情况确定全选复选框是否被选

    复选框全选与全不选效果 逻辑:复选框的checked属性与复选框全选效果对应起来,全选复选框checked:true 时,全部复选框checked:true: 全选框checked:false 时,全 ...

  2. 复选框 全选 以及 获取所有选中的值

    复选框 全选 以及 获取所有选中的值 总结一下 jsp中获取 数据 <%Map<String,List> map = (Map<String,List>)Function ...

  3. html 怎么整体全选功能,html复选框全选按钮

    如何用html做复选框全选中和全不选中 html中实现单击单击一个按钮实现全部选中,在点击一 function selectAllDels() { var allCheckBoxs = documen ...

  4. Jquery 复选框全选与反选点击执行一次然后失效解决方案

    Jquery 复选框全选与反选点击执行一次然后失效解决方案 参考文章: (1)Jquery 复选框全选与反选点击执行一次然后失效解决方案 (2)https://www.cnblogs.com/feng ...

  5. JS 原生实现复选框全选反选功能

    ** JS 原生实现复选框全选反选功能 ** 按钮功能实现思路: 全选按钮: 直接将全选按钮的状态赋值给每一个 复选框. 复选框:只有当所有的复选框选中时,全选按钮才能选中,所以每当复选框每点击一次就 ...

  6. jQuery中的几个案例:隔行变色、复选框全选和全不选

    1 表格隔行变色 1 技术分析: 1 )基本过滤选择器: odd: even: 2 )jq添加和移除样式: addClass(); removeClass(); 2 代码实现 <script s ...

  7. 自制jQuery 复选框全选与反选插件

    (function ($) { //复选框全选 $.fn.checkAll = function (options) { var defaults = { chName:"checkName ...

  8. html复选框全选怎么实现,js html css实现复选框全选与反选

    本文实例为大家分享了js复选框全选与反选实现代码,供大家参考,具体内容如下 html+css+js实现复选框全选与反选 table,tr,td { border:1px solid red; } fu ...

  9. 小程序实现复选框全选和取消全选

    页面逻辑是,在小程序复选框列表页面上单独放一个复选框用于全选(设置class为position: fixed;即可固定在页面上),当点击全选时,页面所有复选框都会勾上,再次点击后页面所有复选框的打√都 ...

  10. react实现全选和反选_react实现复选框全选和反选组件效果

    本文实例为大家分享了react实现复选框全选和反选组件的具体代码,供大家参考,具体内容如下 运行效果图如下: 代码: import React, { Component } from 'react'; ...

最新文章

  1. 1200亿次日均位置服务响应、20亿公里日均轨迹里程,百度地图发布新一代人工智能地图生态全景
  2. Uber致人死亡或为自动驾驶肇事责任 没有判例可循
  3. Android 界面滑动实现---Scroller类 从源码和开发文档中学习(让你的布局动起来)...
  4. 一种在MVC3框架里面设置模板页的方法,不使用_ViewStart
  5. 2018蓝桥杯省赛---java---B---3(复数幂)
  6. [Linux] undefined reference to `itoa'
  7. PrintArea打印,@media screen解决移动web开发的多分辨率问题,@media print设置打印的样式...
  8. linux sql语句传参数,Linux/Unixshell参数传递到SQL脚本
  9. SocketFactory、DefaultSocketFactory、ServerSocketFactory、DefaultServerSocketFactory
  10. php图片添加代码,php图片添加文字水印实现代码_php技巧
  11. mysql job status_检查SQL Server Job状态
  12. 【数字图像处理matlab】sobel、prewitt算子图像锐化
  13. html中电脑自动输入,电脑一直自动打字怎么办
  14. bzoj5369: [PKUSC2018]最大前缀和 (状压dp)
  15. MP1655GG-Z MPS/美国芯源 MOSFET 的开关模式转换器 资源 方案
  16. Widows下通过CMD创建磁盘
  17. ​特拉华大学彭曦教授招收2021 Fall全奖博士生
  18. html视频标签video旋转播放方向,video视频文件有方向怎么处理?
  19. 大话2口袋版不显示服务器,大话西游2新口袋版操作指引及常见问题说明
  20. SAP message TK 248 solved

热门文章

  1. Memcached缓存在.Net 中的使用(memcacheddotnet)
  2. 微信小程序tabBar导航栏页和其他页执行onLoad与onShow时机;tabBar页获取不到参数问题;navigateTo跳转无效问题;onShow执行两次问题;
  3. 解决uni-app官方弹框popup关闭不了问题;/pages/extUI/popup/popup;uni-app弹框popup打开调用事件。unin-app弹框封装;
  4. 前端vscode插件合集
  5. [react] 在React中我们怎么做静态类型检测?都有哪些方法可以做到?
  6. 前端小知识点(6):听了好多闭包,这次可能最懂
  7. React开发(210):react中try...catch..
  8. 前端学习(3331):闭包的形式7
  9. [vue] vue项目有使用过npm run build --report吗?
  10. vue2.0 如何自定义组件(vue组件的封装)