DevExpress根据条件设置GridControl RepositoryItem是否可编辑
作者:shichen2014 发布时间:2023-03-21 14:53:30
标签:DevExpress
本文实例展示了DevExpress根据条件设置GridControl RepositoryItem是否可编辑的方法。
一般在C#项目的开发中,并不是每个RepositoryItem都可以编辑,往往是有条件性的,需要譬如当A列等于“AA”的时候,B列才可编辑,实现起来在ShowingEditor事件中最为方便,并且加入toolTip提示显得人性化。
主要功能代码如下:
private void gvLampConfig_ShowingEditor(object sender, System.ComponentModel.CancelEventArgs e)
{
GridView _view = sender as GridView;
if (_view.FocusedColumn.Name == "colSavePowerGp1")//当列等于colSavePowerGp1
{
string _type = _view.GetRowCellDisplayText(gvLampConfig.FocusedRowHandle, "OptStatusText_gp1");
if (!_type.Equals("节能"))//当列OptStatusText_gp1的列值不等于OptStatusText_gp1
{
e.Cancel = true;
ShowToolTip(toolTipController, "提示", "当是【调光状态】是节能模式情况,可以设置该值!");
}
}
}
public static void ShowToolTip(ToolTipController toolTip, string title, string content)
{
Point _mousePoint = Control.MousePosition;
toolTip.ShowHint(content, title, _mousePoint);
}
代码运行效果如下:
为了调高代码复用性,方便后续使用,可以这样子封装一下:
/// <summary>
/// 设置RepositoryItem是否可编辑
/// 说明:
/// 在ShowingEditor事件中使用
/// </summary>
/// <param name="view">GridView</param>
/// <param name="focusedColumnName">需要设置的列名称</param>
/// <param name="conditonHanlder">判断委托</param>
/// <param name="toolTip">ToolTipController</param>
/// <param name="title">当条件委托成立的时候提示标题</param>
/// <param name="content">当条件委托成立的时候提示内容</param>
/// <param name="e">CancelEventArgs</param>
private void CustomShowingEditorWithToolTip(GridView view, string focusedColumnName, Func<object, bool> conditonHanlder, ToolTipController toolTip, string title, string content, CancelEventArgs e)
{
if (view.FocusedColumn.Name.Equals(focusedColumnName))
{
if (conditonHanlder(view.GetFocusedRow()))
{
e.Cancel = true;
Point _mousePoint = Control.MousePosition;
toolTip.ShowHint(content, title, _mousePoint);
}
}
}
代码使用如下:
private void gvLampConfig_ShowingEditor(object sender, System.ComponentModel.CancelEventArgs e)
{
GridView _view = sender as GridView;
CustomShowingEditorWithToolTip(_view, "colSavePowerGp1", arg => ((LampSelfRunCfgParamter)arg).OptStatusText_gp1 != "节能", toolTipController, "提示", "当是【调光状态】是节能模式情况,可以设置该值!", e);
}
希望本文所示代码能对大家有所帮助!


猜你喜欢
- 目录一、集合框架的概述二、集合框架(Java集合可分为Collection 和 Map 两种体系)三、Collection接口中的方法的使用
- 开始学习WebSocket,准备用它来实现一个在页面实时输出log4j的日志以及控制台的日志。首先知道一些基础信息:1.java7 开始支持
- 1. 启动 Redis Server启动 redis server,如下图所示,端口号 6379:2. 工程实例2.1 工程目录工程目录如下
- 我们知道 Spring Boot 已经提供了一套默认的异常处理机制,但是 Spring Boot 提供的默认异常处理机制却并不一定适合我们实
- 大家对于 Spring 的 scope 应该都不会默认。所谓 scope,字面理解就是“作用域”、“范围”,如果一个 bean 的 scop
- java list,set,map,数组间的相互转换详解1.list转setSet set = new HashSet( new Array
- 实例引入在家庭影院中,有灯光,屏幕,投影机,功放机,DVD 播放器这几个基本的工具:灯光,可以关闭灯光和打开灯光。投影机,可以打开和关闭投影
- 本文实例为大家分享了Java实现马踏棋盘的具体代码,供大家参考,具体内容如下马在某个点最多可能有8种走法,用递归和回溯实现。注:代码中,查找
- 本文实例为大家分享了Android画画板展示的具体代码,供大家参考,具体内容如下main.xml布局<RelativeLayout x
- java -version 命令大家都用过,大部分就是看下jdk版本或检查下环境变量的设置,但最后一行的信息也挺重要,如下图所示:Serve
- file.mkdir()创建单级文件夹,file.mkdirs()创建多级文件夹,file.createNewFile()创建的是一个文件。
- mybatis update并非所有字段需要更新mybatis update需求:更新字段作为参数,未更新字段不传入解决办法<upda
- 概要:流是一组有顺序的,有起点和终点的字节集合,是对数据传输的总称或抽象。即数据在两设备间的传输称为流,流的本质是数据传输,根据数据传输特性
- 1.概述Spring MVC是Spring Framework的一部分,是基于Java实现MVC的轻量级Web框架。Spring MVC的特
- 通过Canvas的平移与旋转简化绘图逻辑是一个非常有用的技巧,下面的时钟view就是利用这个方法完成的,省去了使用三角函数计算坐标的麻烦。p
- 本文简单介绍如何动态创建接口interface的实现实例对象,包含两个知识点:1.如何获取接口interface的所有实现实例对象?2.如何
- 汉诺(Hanoi)塔问题:古代有一个梵塔,塔内有三个座A、B、C,A座上有n个盘子,盘子大小不等,大的在下,小的在上(如图)。有一个和尚想把
- 前言今天看代码看到有牵扯到弱引用的东西,就先稍微补一补Java的四种引用类型吧。Java为引用类型专门定义了一个类Reference,它是引
- 本文实例为大家分享了javafx tableview鼠标触发更新属性,供大家参考,具体内容如下public class HoverCell
- 昨天有个粉丝加了我,问我如何实现类似shiro的资源权限表达式的访问控制。我以前有一个小框架用的就是shiro,权限控制就用了资源权限表达式