在实际开发中,有时候需要对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. 如何获取input自定义属性

    javascript方法: <input type="checkbox"  name="sdf"  data="这是自定义属性" /& ...

  2. mysql 批量插入数据过多的解决方法

    使用场景: 测试时需要插入100w的数据,跑sql脚本插入非常慢. 存储过程如下: //DELIMITER DROP PROCEDURE if EXISTS createAmountCount; cr ...

  3. Helpers\Database

    Helpers\Database The database class is used to connect to a MySQL database using the connection deta ...

  4. B. Painting Pebbles

    B. Painting Pebbles time limit per test 1 second memory limit per test 256 megabytes input standard ...

  5. Android 高级UI设计笔记02:可以拖动交换item位置的GridView(转载)

    如果大家不知道GridView基本使用,可以先参见:Android(java)学习笔记154:使用GridView以及重写BaseAdapter 1. 首先我们明白GridView拖拽的思路: ()根 ...

  6. Android(java)学习笔记103:Map集合的获取功能

    package cn.itcast_01; import java.util.Collection; import java.util.HashMap; import java.util.Map; i ...

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

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

  8. CentOS(一)--CentOS6.4环境搭建

    一.前言 作为一个想从事j2ee后台开发的程序猿,linux系统怎能不学呢?所以,这几天自己准备学习一下linux操作系统.废话不多说,直奔主题. 要学linux开发,首先得要安装linux系统吧,这 ...

  9. HDU 1058 Humble Numbers (DP)

    Humble Numbers Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 65536/32768 K (Java/Others)To ...

  10. 【LIC】O(nlogn)解法

    [LIC--最长递增子序列问题] 在一列数中寻找一些数,这些数满足:任意两个数a[i]和a[j],若i<j,必有a[i]<a[j],这样最长的子序列称为最长递增子序列. O(nlogn)算 ...