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列转义的实现方法

标签: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
  • asp之家 软件编程 m.aspxhome.com