DevExpress实现GridControl同步列头checkbox与列中checkbox状态
2023-06-13 09:15:41 时间
本文实例展示了DevExpress实现GridControl同步列头checkbox与列中checkbox状态的方法,有一定的实用价值,具体方法如下:
主要功能代码如下:
///<summary> ///同步列头checkbox与列中checkbox状态 ///</summary> ///<paramname="view">GridView</param> ///<paramname="fieldeName">需要绘制Checkbox的列名</param> ///<paramname="e">MouseEventArgs</param> publicstaticvoidSyncCheckStatus(thisGridViewview,stringfieldeName,MouseEventArgse) { /*说明: *在MouseDown事件中使用 *参考:https://www.devexpress.com/Support/Center/Question/Details/Q354489 *eg: *privatevoidgvLampConfig_MouseDown(objectsender,MouseEventArgse) *{ *GridView_view=senderasGridView; *_view.SyncCheckStatus(gcCheckFieldName,e); *} */ if(e.Clicks==1&&e.Button==MouseButtons.Left) { view.ClearSorting(); view.PostEditor(); GridHitInfo_info; Point_pt=view.GridControl.PointToClient(Control.MousePosition); _info=view.CalcHitInfo(_pt); if(_info.InColumn&&_info.Column.FieldName.Equals(fieldeName)) { if(getCheckedCount(view,fieldeName)==view.DataRowCount) UnChekAll(view,fieldeName); else CheckAll(view,fieldeName); } } } privatestaticintgetCheckedCount(GridViewview,stringfiledName) { intcount=0; for(inti=0;i<view.DataRowCount;i++) { object_cellValue=view.GetRowCellValue(i,view.Columns[filedName]); //if(_cellValue!=null&&!(_cellValueisDBNull)) if(_cellValue==null)continue; if(string.IsNullOrEmpty(_cellValue.ToString().Trim()))continue; bool_checkStatus=false; if(bool.TryParse(_cellValue.ToString(),out_checkStatus)) { //if((bool)_cellValue) if(_checkStatus) count++; } } returncount; } privatestaticvoidCheckAll(GridViewview,stringfieldName) { for(inti=0;i<view.DataRowCount;i++) { view.SetRowCellValue(i,view.Columns[fieldName],true); } } privatestaticvoidUnChekAll(GridViewview,stringfieldName) { for(inti=0;i<view.DataRowCount;i++) { view.SetRowCellValue(i,view.Columns[fieldName],false); } }
代码使用方法如下:
privatevoidgvLampConfig_MouseDown(objectsender,MouseEventArgse) { GridView_view=senderasGridView; _view.SyncCheckStatus(gcCheckFieldName,e); }
代码运行效果如下:
相关文章
- Dinky在Doris实时整库同步和模式演变的探索实践
- 详解MongoDB数据还原及同步解决思路
- MySQL主从同步的实时监控与维护(mysql主从同步状态)
- 从Oracle移植数据:利用同步表(oracle同步表)
- 夹Linux挂载共享文件夹:实现云端同步(linux挂载共享文件)
- 轻松实现Linux文件同步:学会使用SCP命令(linuxscp同步)
- Linux下实现多线程操作的同步和互斥机制(linux线程同步与互斥)
- 实现阿里云MySQL数据同步(阿里mysql同步)
- 实用教程:学会使用Linux同步文件命令(linux同步文件命令)
- Redis 主从状态:高效数据同步的关键(redis主从状态)
- 同步Linux硬件时间同步:实现时间一致性(linux 硬件时间)
- Linux实时双向同步:实现数据信息一致性(linux实时双向同步)
- 本地缓存与Redis的无缝同步(本地缓存同步redis)
- DM同步数据至Oracle一路抵达新的极致(dm同步到oracle)
- 数据同步实现多个站点之间Redis数据同步的简单方法(多个站点Redis)
- Redis集群同步实现最佳性能(redis 集群同步配置)
- discuz免激活同步登入代码修改方法(discuz同步登录)
- DevExpress实现TreeList父子节点CheckState状态同步的方法