using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Linq.Expressions;
using System.Web.Mvc;
using System.Text; namespace MyJob.Helpers
{
public static class HtmlHelperExt
{ public static MvcHtmlString RadioButtonList(this HtmlHelper helper, string name, IEnumerable<String> items,string selectValue=null,RadioButtonListType type=)
{
var selectList = new SelectList(items);
return helper.RadioButtonList(name, selectList, selectValue,type); } /// <summary>
///
/// </summary>
/// <param name="helper"></param>
/// <param name="name"></param>
/// <param name="items"></param>
/// <param name="type">0:代表水平排列,1:代表垂直方向排列</param>
/// <returns></returns>
public static MvcHtmlString RadioButtonList(this HtmlHelper helper, string name, IEnumerable<SelectListItem> items, string selectValue=null, RadioButtonListType type = )
{
var sb = new StringBuilder();
foreach (var item in items)
{
var rbValue = item.Value ?? item.Text;
var rbText = item.Text ?? item.Value;
var rbId = name + "_" + rbValue;
var radioTag = "";
if (String.IsNullOrEmpty(selectValue))
{
if (item.Selected)
radioTag = String.Format("<input name='{0}' id='{1}' checked value='{2}' type='radio'>", name, rbId, rbValue);
else
radioTag = String.Format("<input name='{0}' id='{1}' value='{2}' type='radio'>", name, rbId, rbValue);
}
else {
if (rbValue.Trim() == selectValue.Trim())
radioTag = String.Format("<input name='{0}' id='{1}' checked value='{2}' type='radio'>", name, rbId, rbValue);
else
radioTag = String.Format("<input name='{0}' id='{1}' value='{2}' type='radio'>", name, rbId, rbValue);
}
var labelTag = new TagBuilder("label");
labelTag.MergeAttribute("for", rbId);
labelTag.MergeAttribute("id", rbId + "_label");
labelTag.InnerHtml = rbText; sb.Append(radioTag.ToString() + labelTag.ToString());
if (type == RadioButtonListType.V) sb.Append("<br/>");
} return MvcHtmlString.Create(sb.ToString()); }
}
}
调用1
@Html.RadioButtonList(m=>m.UserType,new [] {
new SelectListItem {
Text = "个人",
Value = "Personal",
Selected = true
},
new SelectListItem {
Text = "企业",
Value = "Company"
}
})
调用2
@Html.RadioButtonList(m=>m.UserType,new [] {
new SelectListItem {
Text = "个人",
Value = "Personal",
Selected = true
},
new SelectListItem {
Text = "企业",
Value = "Company"
}
},"个人",)
其实 复选也一样! checkBoxlist