MVC 自己实现RadioButtonList方法
来源:互联网 发布:淘宝游戏王店铺推荐 编辑:程序博客网 时间:2024/05/29 08:11
博主的原则一贯就是有图有真相:
代码实现如下:
using System.Collections.Generic;using System.ComponentModel;using System.Linq;using System.Text;using System.Web.Mvc.Html;using System.Web.UI.WebControls;namespace System.Web.Mvc{ public static class RadioButtonListExtensions { public static IEnumerable<SelectListItem> ToSelectList(this Enum enumValue) { return from Enum e in Enum.GetValues(enumValue.GetType()) select new SelectListItem { Selected = e.Equals(enumValue), Text = e.ToDescription(), Value = Convert.ToInt32(Enum.Parse(enumValue.GetType(), e.ToString(), true)).ToString() }; } public static string ToDescription(this Enum value) { var attributes = (DescriptionAttribute[])value.GetType().GetField( value.ToString()).GetCustomAttributes(typeof(DescriptionAttribute), false); return attributes.Length > 0 ? attributes[0].Description : value.ToString(); } public static MvcHtmlString RadioButtonList(this HtmlHelper htmlHelper, string name, IEnumerable<SelectListItem> selectList, RepeatDirection repeatDirection = RepeatDirection.Horizontal) { var sb = new StringBuilder(); if (selectList != null) { foreach (SelectListItem item in selectList) { var label = htmlHelper.Label(name, item.Text, new { onClick = "$('input[type=\"radio\"][name=\"" + name + "\"]').removeAttr('checked'); $(this).prev().prop('checked','checked'); " }); var radio = htmlHelper.RadioButton(name, item.Value, item.Selected, new { id = name + "_" + item.Value }).ToHtmlString(); sb.AppendFormat("<{2} class=\"RadioButton\">{0}{1}</{2}>", radio, label, (repeatDirection == RepeatDirection.Horizontal ? "span" : "div")); } } return MvcHtmlString.Create(sb.ToString()); } }}
RadioButtonList的枚举如下:
using System;using System.Collections.Generic;using System.Linq;using System.Web;namespace System.Web.Mvc{ public enum RadioButtonListEnum { 葫芦娃1 = 1, 葫芦娃2 = 2, 葫芦娃3 = 3, 葫芦娃4 = 4, 葫芦娃5 = 5, 葫芦娃6 = 6, 葫芦娃7 = 7 }}
前台调用如下:
@{ ViewBag.Title = "Home Page";}<div class="jumbotron"> <h1>葫芦娃的MVC</h1> <p class="lead">葫芦娃测试MVC</p></div><div class="row"> <div class="col-md-4"> <h2>Get RadioButtonList Horizontal</h2> <p>@Html.RadioButtonList("HuLuWaRadioButton", RadioButtonListEnum.葫芦娃1.ToSelectList(),System.Web.UI.WebControls.RepeatDirection.Horizontal)</p> </div> <div class="col-md-4"> <h2>Get RadioButtonList Vertical</h2> <p>@Html.RadioButtonList("HuLuWaRadioButton", RadioButtonListEnum.葫芦娃1.ToSelectList(), System.Web.UI.WebControls.RepeatDirection.Vertical)</p> </div></div>
阅读全文
1 0
- MVC 自己实现RadioButtonList方法
- MVC通过扩展HtmlHelper实现RadioButtonList
- 自己实现MVC
- wpf radiobuttonlist实现
- 自己实现Asp.NET MVC
- RadioButtonList
- RadioButtonList
- RadioButtonList
- 实现RadioButtonList自定义WinForm控件
- 自己实现mvc+自己实现标注的写法(更新)
- 实现自己的MVC框架(php) 1
- 2个RadioButtonList之间实现单选
- 如何使用radiobuttonlist实现下面的功能
- 用Datalist配合RadioButtonList实现单项选择题
- Jsp 中MVC实现方法
- Jsp 中MVC实现方法
- 项目练习:自己写一个CheckBoxList,RadioButtonList控件
- 自己实现IDispatch::Invoke方法
- JSON---(1)简介
- 10款顶级web开源框架
- zookeeper 学习笔记-zookeeper的应用
- Django框架之views(业务逻辑)简单后台首页展示的业务逻辑详细描述
- Date 获取当前时间和指定时间
- MVC 自己实现RadioButtonList方法
- Linux SPI 子系统 驱动设计
- sklearn浅析(八)——近邻算法
- Android 常用sql语句笔记(一)
- 框架整合____SSM框架整合(主流整合方式,最精简整合方式)
- 【C++】while(cin>>str); 和 getline(cin,line,'#');
- 一些常用的类汇总
- 前序遍历和中序遍历构造二叉树[lintcode]
- 关于yii2的url美化及相关apache配置问题