我们在开发过程中经常会遇到需要将枚举值转换成名称进行显示的情况。如下我们有这样一个数据源对象:

  1. var users = [
  2. {id: 1, name: "similar1", status: 1},
  3. {id: 2, name: "similar2", status: 2}
  4. ];

其中字段 status 代表的是用户的状态, 1 代表 “可用”, 2 代表 “禁用”。我们使用 kendo grid 常规配置如下:

  1. columns: [
  2. { field: "id", title: "编号" },
  3. { field: "name", title: "用户名" },
  4. { field: "status", title: "状态" }
  5. ],

对应的效果如下图所示:

由上图可见,我们的状态那一列直接就是显示的数字 1,2 ,这并不是我们想要的结果。我们需要的是将1,2分别转换成文字:可用,禁用。起初我想到的是通过 template 进行条件判断,当 status 为1时,显示 可用, 为2时, 显示 禁用。 代码如下:

  1. columns: [
  2. { field: "id", title: "编号" },
  3. { field: "name", title: "用户名" },
  4. { field: "status", title: "状态", template: "#= (status == 1) ? '可用' : '禁用' #" }
  5. ]
  6.  
  7. // 或者
  8.  
  9. columns: [
  10. { field: "id", title: "编号" },
  11. { field: "name", title: "用户名" },
  12. { field: "status", title: "状态", template: "#if (status == 1) {# 可用 #}else{# 禁用 #}#" }
  13. ]

之后觉得这种方法太烂了,自己似乎接受不了。这种模板判断的方式维护性太低了,哪天如果加了几个状态,那就得写一堆的if。因此又去查找官方api文档,想寻找更好的解决方案,于是就有以下的收获,代码如下:

  1. //1. 首先我们定义一个类似枚举功能的对象
  2. var statusEnum = [
  3. {text: "可用", value: 1},
  4. {text: "禁用", value: 2}
  5. ]
  6.  
  7. //2. 之后对kendo grid中的配置做如下调整
  8. columns: [
  9. { field: "id", title: "编号" },
  10. { field: "name", title: "用户名" },
  11. { field: "status", title: "状态", values: statusEnum }
  12. ]

做完上面2步就ok了,这种方式是不是更容易被接受呢? 维护起来比之前简单了,看着也明了.....

Kendo Grid控件中将枚举值转为枚举名显示的更多相关文章

  1. Grid控件

    Grid控件是WPF布局容器中功能最强大.最灵活的控件.Grid控件基本上能够完成其他WPF容器控件所能完成的功能,Microsoft建议大多数界面的布局都使用Grid控件来实现,因此默认情况下.vs ...

  2. 完全使用一组 DSL 来操作 Grid 控件

    最近尝试了一下将 XtraGrid 的初始化工作封装成内部 DSL,例如一个普通的基础数据的增删改查操作的代码会像下面这样: public partial class UserForm : XtraF ...

  3. wpf研究之道-grid控件

    想要说些什么,却不知道从哪开始."形而上谓之道,形而下谓之器".与其坐而论道,不如脚踏实地,从最实用的地方开始. 我们先来看看wpf中的grid控件.grid控件是个网格的布局控件 ...

  4. WPF-学习笔记 动态修改控件Margin的值

    原文:WPF-学习笔记 动态修改控件Margin的值 举例说明:动态添加一个TextBox到Grid中,并设置它的Margin: TextBox text = new TextBox(); t_gri ...

  5. FineUI Grid控件高度自适应

    引言 页面里使用f:Grid控件,添加分页功能,然后高度填充整个页面. 如何使用 使用FineUI 控件的每个页面都有一个f:PageManager控件,它包含属性:AutoSizePanelID,设 ...

  6. WPF平台Grid控件性能比较

    WPF官方发布第一个版本至今已经有10年了, 我们几乎在同时也开始了XAML开发.即使经过多年打造,我们依旧尝试提高:我们真的成功打造了高效灵活的控件吗?我没有在其他地方找到任何关于优秀的WPF表格性 ...

  7. python通过win32api轻松获取控件的属性值

    1.如何利用句柄操作windows窗体 首先,获得窗体的句柄  win32api.FindWindows() 第二,获得窗体中控件的id号,spy++ 第三,根据控件的ID获得控件的句柄(hwnd)  ...

  8. FineUI Grid控件右键菜单的实现

    FineUI官方Demo上一直没有Grid右键菜单的实现,其实从4.1.x的版本开始,允许添加自定义的事件监听(Listeners),所以要实现这个功能已经相当容易了. ExtJs右键菜单有很多种,对 ...

  9. 实现控件WPF(4)----Grid控件实现六方格

    PS:今天上午,非常郁闷,有很多简单基础的问题搞得我有些迷茫,哎,代码几天不写就忘.目前又不当COO,还是得用心记代码哦! 利用Grid控件能很轻松帮助我们实现各种布局.上面就是一个通过Grid单元格 ...

随机推荐

  1. github或码云协同开发

    协同开发 1.引子:假如三个人共同开发同一份代码,每个人都各自安排了任务,当每个人都完成了一半的时候,提交不提交呢? 要提交,提交到dev吗,都上传了一半,这样回家拿出来的代码根本跑不起来.所以, 为 ...

  2. How To Scan QRCode For UWP (2)

    这篇随笔主要介绍照相预览功能,重要使用的是MediaCapture对象,MediaCapture对象还可以用来处理录音和录制视频,本文只讨论照相功能. 1:查找摄像头 后置摄像头优先,找不到后置摄像头 ...

  3. Dynamo(Amazon分布式存储引擎)

    参考资料: http://blog.csdn.net/zgl_dm/article/details/6291984 http://blog.csdn.net/cywosp/article/detail ...

  4. 使用.NET Core与Google Optimization Tools实现员工排班计划Scheduling

    上一篇说完<Google Optimization Tools介绍>,让大家初步了解了Google Optimization Tools是一款约束求解(CP)的高效套件.那么我们用.NET ...

  5. Android中实现activity的页面跳转并传值

    一个Android应用程序很少会只有一个Activity对象,如何在多个Activity之间进行跳转,而且能够互相传值是一个很基本的要求. 本次我们就讲一下,Android中页面跳转以及传值的几种方式 ...

  6. Glide图片加载库的使用

    http://www.cnblogs.com/whoislcj/p/5558168.html这篇文章写得很详细,我这里简单说一些 1.app的build.gradle的dependencies里面添加 ...

  7. [Python 从入门到放弃] 3. BIF(内建函数)

    BIF (built-in functions) Python中提供了70多个内建函数,具备大量的现成功能. BIF不需要专门导入,可以直接使用,拿来就用 1.print() # 在屏幕上打印输出 如 ...

  8. js便签笔记(6)——jQuery中的ready()事件为何需要那么多代码?

    前言: ready()事件的应用,是大家再熟悉不过的了,学jQuery的第一步,最最常见的代码: jQuery(document).ready(function () { }); jQuery(fun ...

  9. spring boot 与 自定义interceptor

    前面学习过过滤器, 但是过滤器是针对servlet的, 用在springmvc和spring boot里面, 功能上, 感觉并不是很好用. 那这里来学习一下拦截器. 一. 拦截器的执行顺序 1. 目录 ...

  10. Java 使用gson 解析 Json

    json数据 { "resultcode": "200", "reason": "successed!", " ...