DevExpress中GridControl列转义的实现方法
作者:shichen2014 时间:2022-11-10 05:14:31
在一些项目的实际开发过程中,我们有时候需要对GridControl中列值进行转义,譬如1转义成“完成”等等,一般在诸如CustomColumnDisplayText事件中能够轻松完成,为了提高代码复用性,所以需要对CustomColumnDisplayText进行包装。具体方法如下:
主要功能代码如下:
/// <summary>
/// CustomColumnDisplayText Helper
/// </summary>
/// <param name="girdview">GridView</param>
/// <param name="fieldNameHandler">委托</param>
/// <param name="dispalyTextHandler">展现文字</param>
/// <param name="e">CustomColumnDisplayTextEventArgs</param>
public static void CusColDisplayTextHelper(this GridView girdview, Predicate<string> fieldNameHandler, Func<object, string> dispalyTextHandler, CustomColumnDisplayTextEventArgs e)
{
if (fieldNameHandler(e.Column.FieldName))
{
e.DisplayText = dispalyTextHandler(e.Value);
}
}
/// <summary>
/// CustomColumnDisplayText Helper
/// </summary>
/// <param name="girdview">GridView</param>
/// <param name="valueHandler">委托</param>
/// <param name="dispalyTextHandler">委托</param>
/// <param name="e">CustomColumnDisplayTextEventArgs</param>
public static void CusColDisplayTextHelper(this GridView girdview, Func<object, Type, bool> valueHandler, Func<object, string> dispalyTextHandler, CustomColumnDisplayTextEventArgs e)
{
if (valueHandler(e.Value, e.Value.GetType()))
{
e.DisplayText = dispalyTextHandler(e.Value);
}
}
/// <summary>
///CustomColumnDisplayText Helper
/// </summary>
/// <param name="girdview">GridView</param>
/// <param name="valueHandler">委托</param>
/// <param name="curdispalyText">展现文字</param>
/// <param name="e">CustomColumnDisplayTextEventArgs</param>
public static void CusColDisplayTextHelper(this GridView girdview, Func<object, Type, bool> valueHandler, string curdispalyText, CustomColumnDisplayTextEventArgs e)
{
if (valueHandler(e.Value, e.Value.GetType()))
{
e.DisplayText = curdispalyText;
}
}
代码使用方法如下:
private void gvLampConfig_CustomColumnDisplayText(object sender, CustomColumnDisplayTextEventArgs e)
{
gvLampConfig.CusColDisplayTextHelper(name => name.Equals("LampViDirection"), value => value.ToInt(1) == 1 ? "正向" : "反向", e);
gvLampConfig.CusColDisplayTextHelper(name => name.Equals("LampWorkStatus"), TranLampWorkType, e);
gvLampConfig.CusColDisplayTextHelper(name => name.Equals("CTUChNo"), value => string.Format("第{0}回路", value), e);
gvLampConfig.CusColDisplayTextHelper(name => name.Equals("LampPhase"), TranLampPhase, e);
gvLampConfig.CusColDisplayTextHelper(name => name.Equals("LampDeviceType"), TranLampDeviceType, e);
gvLampConfig.CusColDisplayTextHelper(name => name.Equals("LampPower"), value => string.Format("{0} W", value), e);
gvLampConfig.CusColDisplayTextHelper(name => name.Equals("LampIntensity"), value => string.Format("{0} %", value), e);
gvLampConfig.CusColDisplayTextHelper((value, type) => value.ToInt(-1) == -1 && type == typeof(Int32), "不修改", e);
}
private string TranLampDeviceType(object type)
{
int _type = type.ToInt(-1);
if (_type == 1) return "钠灯";
if (_type == 2) return "LED灯";
if (_type == 3) return "无极灯";
return "--";
}
private string TranLampPhase(object type)
{
int _type = type.ToInt(-1);
if (_type == 0) return "未知";
if (_type == 1) return "A相";
if (_type == 2) return "B相";
if (_type == 3) return "C相";
return "--";
}
private string TranLampWorkType(object type)
{
int _type = type.ToInt(-1);
if (_type == 0) return "关闭但不删除";
if (_type == 1) return "启用";
if (_type == 2) return "删除";
return "--";
}
代码运行效果如下所示:
标签:DevExpress,GridControl
0
投稿
猜你喜欢
java8 forEach结合Lambda表达式遍历 List操作
2021-07-04 07:22:55
详解Java 信号量Semaphore
2021-12-22 11:10:36
Java Volatile关键字你真的了解吗
2023-08-09 20:28:23
springboot2.x整合tkmapper的示例代码
2021-09-19 11:56:59
C#实现日期格式转换的公共方法类实例
2023-05-16 10:06:54
c#对象反序列化与对象序列化示例详解
2022-08-19 16:32:54
Unity3d 使用Gizmos画一个圆圈
2022-05-22 05:10:52
C#8.0中的模式匹配
2023-07-19 13:27:39
Android自定义Camera实现拍照功能
2021-09-22 09:18:58
java简单实现多线程及线程池实例详解
2023-05-12 05:47:04
C#获取汉字字符串拼音首字母的方法
2022-09-06 14:01:12
详解Java的Hibernate框架中的List映射表与Bag映射
2021-09-16 05:35:05
InterlliJ IDEA2020新建java web项目找不到Static Web的解决
2022-04-11 19:54:27
SpringBoot文件分片上传的示例代码
2023-06-18 11:30:15
Java利用POI实现导入导出Excel表格示例代码
2023-05-15 03:02:19
Java编程实现获取当前代码行行号的方法示例
2021-06-28 06:51:14
Android application捕获崩溃异常怎么办
2023-09-26 11:07:12
C# Winform实现捕获窗体最小化、最大化、关闭按钮事件的方法
2021-10-18 08:01:29
常用Eclipse快捷方式(推荐)
2022-01-22 04:37:56
Spring Data JPA 设置字段默认值方式
2021-08-13 07:27:06