c# select标签绑定枚举,并以Description做Text显示
今天在做项目时遇到一个问题:
开发中有些字段是枚举类型如 Dept 企业表中可能有个字段 Property 性质 0:事业单位,1:私企,2:外企,但有时我们不会单独为性质这个字段定义一张表,
而是在后台用枚举来定义此字段有可能的值,而这个时候我们在前台绑定select标签时又不好将其写死。
我首先想到的是用枚举绑定select,但一般情况下我们的枚举名都用英文表示,而将英文绑定就显得不合实际,这时候我想到的是绑定 Description 枚举描述。
下面是我的解决方案,本人小白,有更好的方法欢迎大家提出,一起加油共同进步。
一.定义枚举类 (common)
/// <summary>
/// 单位性质 0:事业单位,1:私企,2:外企
/// </summary>
public enum DeptProperty
{
[Description("事业单位")]
Institution = ,
[Description("私企")]
PrivateCompany = ,
[Description("外企")]
ForeignCompany =
}
二.获取枚举中的值和Description
ps:这块方法可能不是最好的。有更好的方法希望能提出交流。
1.Controller.cs
/// <summary>
/// 获取企业性质
/// </summary>
public JsonResult GetDeptProperty()
{
List<SelectListItem> items = new List<SelectListItem>();
//遍历枚举的公共且静态的Field,获取Field的值;
foreach (FieldInfo myEnum in typeof(Model.EnumClass.DeptProperty).GetFields(BindingFlags.Public | BindingFlags.Static))
{
items.Add(new SelectListItem()
{
Text = EnumHelper.GetDescription(myEnum),
Value = ((int)myEnum.GetValue(null)).ToString()
});
}
return Json(items, JsonRequestBehavior.AllowGet);
}
2.Helper.cs GetDescription()
/// <summary>
/// 根据Field获取Description说明的值
/// </summary>
/// <param name="fi"></param>
/// <returns></returns>
public static string GetDescription(FieldInfo fi)
{
DescriptionAttribute[] arrDesc = (DescriptionAttribute[])fi.GetCustomAttributes(typeof(DescriptionAttribute), false);
return arrDesc[].Description;
}
三.前台请求数据并绑定 (js)
//加载企业性质
function getDeptProperty() {
//同步请求以免后面的操作获取不到值
$.ajaxSettings.async = false;
$.getJSON('/PracticeEnterprise/GetDeptProperty', function (data) {
$('#deptProperty').empty();
$.each(data, function (i, item) {
$('#deptProperty').append($('<option></option>').val(item.Value).text(item.Text));
});
});
}
效果:
aaarticlea/png;base64,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" alt="" />
c# select标签绑定枚举,并以Description做Text显示的更多相关文章
- html中select标签根据枚举获得值的总结
不知不觉在公司一个多月了,这一个月做了一个支票申请的web页面功能,都不是特别难,审核有公司给的工作流,分页工具和很多公用工具公司也都给了,所以觉得难度都不是很大.今天主管让我们修改了以前做的项目的代 ...
- layui中选中select标签 隐藏div
在select标签中添加 lay-filter="cartype" <script type="text/javascript"> form.on( ...
- select获取选中的option(包含value和text,重点是text怎么获取)
简单描述:后台需要获取到select标签选择的内容,也就是text,该怎么取呢?很简单. 代码: //hml代码<div class="col-md-6"> <l ...
- 2017年3月25日工作日志:Jquery使用小结[绑定事件判断、select标签、军官证正则]
jQuery获取DOM绑定事件 在1.8.0版本之前,我们要想获取某个DOM绑定的事件处理程序可以这样: $.data(domObj,'events');//或者$('selector').data( ...
- jQ给下拉框绑定事件,为什么要绑定在框(select标签)上,而不是绑定在选项(option标签)上
这是我在学习锋利的 jquery 书中 5.1.4 的代码时遇到的一个小问题,源代码如下: <head> <style type="text/css"> * ...
- ASP.NET Core 四种方式绑定枚举值
前言 本节我们来讲讲在ASP.NET Core MVC又为我们提供了哪些方便,之前我们探讨过在ASP.NET MVC中下拉框绑定方式,这节我们来再来重点看看枚举绑定的方式,充分实现你所能想到的场景,满 ...
- angular中的 input select 值绑定无效,以及多出一个空白选项问题
问题: <!-- 问题标签 --> <select ng-model="sortType"> <option value="1"& ...
- m_Orchestrate learning system---八、下拉列表(select标签)如何实现链接功能
m_Orchestrate learning system---八.下拉列表(select标签)如何实现链接功能 一.总结 一句话总结:option的值就是链接地址,选择事件为指向选中的option的 ...
- <select>标签,不要在select标签中写value属性!!!
<select> select标签,一个选择框标签,在开发中很多时候会用到这个标签,例如选择生日19**年,或者在segmentfault中编辑文章时选择'原创','转载',还是'翻译'等 ...
随机推荐
- 【criteria CascadeType】级联的不同情况
使用criteria进行增删改查操作,可能会发生级联删除的情况,例如对员工表进行删除,可能会级联删除掉部门表中的某一条信息[类似这样的情况] 对此,我们可以在实体类中对级联的关系进行管理: 对于cri ...
- AOP动态代理解析3-增强方法的获取
对于指定bean的增强方法的获取一定是包含两个步骤的: 获取所有的增强 寻找所有增强中使用于bean的增强并应用 那么findCandidateAdvisors与findAdvisorsThatCan ...
- poj1753 bfs+奇偶性减枝//状压搜索
http://poj.org/problem?id=1753 题意:有个4*4的棋盘,上面摆着黑棋和白旗,b代表黑棋,w代表白棋,现在有一种操作,如果你想要改变某一个棋子的颜色,那么它周围(前后左右) ...
- css布局1
body <body> <header id='title'> <h1>Holla</h1> </header> <div id='c ...
- MVVM datatemplate 下button.contextmenu的command 失效解决方案
<Button CommandParameter="{Binding}" Tag="{Binding RelativeSource={RelativeSource ...
- Kafka 分布式消息队列介绍
Kafka 分布式消息队列 类似产品有JBoss.MQ 一.由Linkedln 开源,使用scala开发,有如下几个特点: (1)高吞吐 (2)分布式 (3)支持多语言客户端 (C++.Java) 二 ...
- java中 ==与equals 有什么区别?
1.==既可以比较基本类型变量,又可比较引用类型变量,而equals只能比较引用类型变量: 2.equals方法支持重写,如果未重写equals方法,则比较引用变量时与==都是比较变量所指向的对象地址 ...
- Optimizing Performance: Data Binding(zz)
Optimizing Performance: Data Binding .NET Framework 4.5 Other Versions Windows Presentation Founda ...
- Python连接Oracle
http://wenku.baidu.com/link?url=2yVoHbJ3XTnZdbyOkN923ncGPqXygJiB6wSRBkqlqimR6H8XxWpBT6GxCTFgmALyqGH0 ...
- 20145304 Java第七周学习报告
20145304<Java程序设计>第七周学习总结 教材学习内容总结 1.时间的度量: 格林威治标准时间(GMT)通过观察太阳而得,其正午是太阳抵达天空最高点之时,因地球的公转与自传,会造 ...