在实际开发中,有时候需要对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之CustomColumnDisplayText Helper的更多相关文章

  1. DevExpress GridControl使用方法

    一.如何解决单击记录整行选中的问题 View->OptionsBehavior->EditorShowMode 设置为:Click 二.如何新增一条记录 (1).gridView.AddN ...

  2. 实现DevExpress GridControl 只有鼠标双击后才进行修改数据

    1. 实现DevExpress GridControl 只有鼠标双击后才进行修改数据:修改GridView.OptionsBehavior.EditorShowMode属性为Click 2. 实现De ...

  3. DevExpress GridControl 使用方法技巧 总结 收录整理

    一.如何解决单击记录整行选中的问题 View->OptionsBehavior->EditorShowMode 设置为:Click 二.如何新增一条记录 ().gridView.AddNe ...

  4. DevExpress GridControl使用(转)

    DevExpress GridControl使用 (一)原汁原味的表格展示 Dev控件中的表格控件GridControl控件非常强大.不过,一些细枝末节的地方有时候用起来不好找挺讨厌的.使用过程中,多 ...

  5. Devexpress GridControl z

    http://minmin86121.blog.163.com/blog/static/4968115720144194923578/ 1 AllowNullInput=False; --Devexp ...

  6. DevExpress GridControl 单元格添加进度条(ProgressBar)

    首先可以使用DevExpress GridControl 自带的进度条控件. 但是我要用一个方法来设置所以的单元格进度,而不是每个单元格都要设置一遍,同时我想要根据进度值不同,进度条显示不同的颜色. ...

  7. DevExpress GridControl+UserControl实现分页

    志向不过是记忆的奴隶,生气勃勃地降生,但却很难成长. —— 莎士比亚 时隔一年,我写随笔真的很随意,想起了就来博客园写写,想不起来就任由懒惰支配着我.不过我到觉得这不是什么坏事,你不用为了完成某事而让 ...

  8. DevExpress GridControl 显示外部图片

    如果数据源中只包含图片的链接,如何在DevExpress GridControl的一列中显示外部图片? 要实现该功能,可通过非绑定列的方式来实现.具体实现方法如下: 1.    创建了一个非绑定列并设 ...

  9. DevExpress GridControl如何取消默认的显示方式

    DevExpress GridControl如何取消默认的显示方式,就是表格中好像还嵌套了一个表格,下面有个折叠‘+’按钮,我需要显示的是就是单表格的样式效果. 默认的样式如图: 我需要显示的效果图: ...

随机推荐

  1. java_ExecutorService, CompletionService - 有返回值并行工作方式

    package com.demo.test3; import java.util.ArrayList; import java.util.List; import java.util.Random; ...

  2. MySQL_update同一张表

    update tb1 inner join(select type, count(*) as cntfrom tb1 group by type)as der using(type)set tb1.c ...

  3. JS_CSS_logon_Mask

    <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/ ...

  4. start.s中的.balignl 16,0xdeadbeef

    转载:http://blog.csdn.net/l_thread/article/details/6020036 开始看start.s中的代码,又一句.balignl 16,0xdeadbeef,不知 ...

  5. struts2.1笔记05:struts2开发环境的搭建

    1.找到开发Struts应用需要使用到的jar文件. 首先我们要在myEclipse中新建一个Web Project,我们这里命名为"struts2".然后我们就要使用jar文件, ...

  6. oracle索引、 管理权限和角色

    索引 1 单列索引create index 索引名 on 表名(列名): 2复合索引在同一张表上可以有多个索引,但是要求列的组合必须不同.create index 索引名 on 表名(列名1, 列名2 ...

  7. linux下 yum源、rpm、源代码安装mysql

    mysql的安装 一.yum源格式安装mysql 1.将下载的yum包上传到linux上: [root@localhost ~]# ls mysql-community-release-el6-5.n ...

  8. Objective-C ,ios,iphone开发基础:多个视图(view)之间的切换,以及视图之间传值。

    所有的视图都继承自 UIViewController,都使用 - (id)initWithNibName:(NSString *)nibNameOrNil bundle:(NSBundle *)nib ...

  9. Linux安装Oracle 11G过程(测试未写完)

    一.简介 Oracle数据库在系统运维中的重要性不言而喻,通过熟悉Oracle的安装来加深对操作系统和数据库知识的了解.Linux安装Oracle前期修改linux内核参数很重要,其实就是linux下 ...

  10. [转]在 Windows Server 2012 上安装 IIS 8

    本文转自:http://www.starland.net.cn/blog/view/158/1.aspx 本文译自:http://learn.iis.net/page.aspx/1088/instal ...