zoukankan      html  css  js  c++  java
  • 主攻ASP.NET MVC4.0之重生:CheckBoxListHelper和RadioBoxListHelper的使用

    在项目中新建Helpers文件夹,创建CheckBoxListHelper和RadioBoxListHelper类。

    CheckBoxListHelper代码

    using System;
    using System.Collections.Generic;
    using System.Linq;
    using System.Linq.Expressions;
    using System.Text;
    using System.Web;
    using System.Web.Mvc;
    
    namespace SHH.Helpers
    {
        public static class CheckBoxListHelper
        {
            public static MvcHtmlString CheckBoxList(this HtmlHelper helper, string name, bool isHorizon = true)
            {
                return CheckBoxList(helper, name, helper.ViewData[name] as IEnumerable<SelectListItem>, new { }, isHorizon);
            }
    
            public static MvcHtmlString CheckBoxList(this HtmlHelper helper, string name, IEnumerable<SelectListItem> selectList, bool isHorizon = true)
            {
                return CheckBoxList(helper, name, selectList, new { }, isHorizon);
            }
    
            public static MvcHtmlString CheckBoxListFor<TModel, TProperty>(this HtmlHelper helper, Expression<Func<TModel, TProperty>> expression, IEnumerable<SelectListItem> selectList, bool isHorizon = true)
            {
                string[] propertys = expression.ToString().Split(".".ToCharArray());
                string id = string.Join("_", propertys, 1, propertys.Length - 1);
                string name = string.Join(".", propertys, 1, propertys.Length - 1);
    
                return CheckBoxList(helper, id, name, selectList, new { }, isHorizon);
            }
    
            public static MvcHtmlString CheckBoxList(this HtmlHelper helper, string name, IEnumerable<SelectListItem> selectList, object htmlAttributes, bool isHorizon = true)
            {
                return CheckBoxList(helper, name, name, selectList, htmlAttributes, isHorizon);
            }
    
            public static MvcHtmlString CheckBoxList(this HtmlHelper helper, string id, string name, IEnumerable<SelectListItem> selectList, object htmlAttributes, bool isHorizon = true)
            {
                IDictionary<string, object> HtmlAttributes = HtmlHelper.AnonymousObjectToHtmlAttributes(htmlAttributes);
    
                HashSet<string> set = new HashSet<string>();
                List<SelectListItem> list = new List<SelectListItem>();
                string selectedValues = (selectList as SelectList).SelectedValue == null ? string.Empty : Convert.ToString((selectList as SelectList).SelectedValue);
                if (!string.IsNullOrEmpty(selectedValues))
                {
                    if (selectedValues.Contains(","))
                    {
                        string[] tempStr = selectedValues.Split(',');
                        for (int i = 0; i < tempStr.Length; i++)
                        {
                            set.Add(tempStr[i].Trim());
                        }
    
                    }
                    else
                    {
                        set.Add(selectedValues);
                    }
                }
    
                foreach (SelectListItem item in selectList)
                {
                    item.Selected = (item.Value != null) ? set.Contains(item.Value) : set.Contains(item.Text);
                    list.Add(item);
                }
                selectList = list;
    
                HtmlAttributes.Add("type", "checkbox");
                HtmlAttributes.Add("id", id);
                HtmlAttributes.Add("name", name);
                HtmlAttributes.Add("style", "border:none;");
    
                StringBuilder stringBuilder = new StringBuilder();
    
                foreach (SelectListItem selectItem in selectList)
                {
                    IDictionary<string, object> newHtmlAttributes = HtmlAttributes.DeepCopy();
                    newHtmlAttributes.Add("value", selectItem.Value);
                    if (selectItem.Selected)
                    {
                        newHtmlAttributes.Add("checked", "checked");
                    }
    
                    TagBuilder tagBuilder = new TagBuilder("input");
                    tagBuilder.MergeAttributes<string, object>(newHtmlAttributes);
                    string inputAllHtml = tagBuilder.ToString(TagRenderMode.SelfClosing);
                    string containerFormat = isHorizon ? @"<label> {0}  {1}</label>" : @"<p><label> {0}  {1}</label></p>";
                    stringBuilder.AppendFormat(containerFormat,
                       inputAllHtml, selectItem.Text);
                }
                return MvcHtmlString.Create(stringBuilder.ToString());
    
            }
            private static IDictionary<string, object> DeepCopy(this IDictionary<string, object> ht)
            {
                Dictionary<string, object> _ht = new Dictionary<string, object>();
    
                foreach (var p in ht)
                {
                    _ht.Add(p.Key, p.Value);
                }
                return _ht;
            } 
        }
    }

    RadioBoxListHelper代码

    using System;
    using System.Collections.Generic;
    using System.Linq;
    using System.Text;
    using System.Web;
    using System.Web.Mvc;
    
    namespace SHH.Helpers
    {
        public static class RadioBoxListHelper
        {
            public static MvcHtmlString RadioBoxList(this HtmlHelper helper, string name)
            {
                return RadioBoxList(helper, name, helper.ViewData[name] as IEnumerable<SelectListItem>, new { });
            }
    
            public static MvcHtmlString RadioBoxList(this HtmlHelper helper, string name, IEnumerable<SelectListItem> selectList)
            {
                return RadioBoxList(helper, name, selectList, new { });
            }
    
            public static MvcHtmlString RadioBoxList(this HtmlHelper helper, string name, IEnumerable<SelectListItem> selectList, object htmlAttributes)
            {
                IDictionary<string, object> HtmlAttributes = HtmlHelper.AnonymousObjectToHtmlAttributes(htmlAttributes);
    
                HtmlAttributes.Add("type", "radio");
                HtmlAttributes.Add("name", name);
    
                StringBuilder stringBuilder = new StringBuilder();
                int i = 0;
                int j = 0;
                foreach (SelectListItem selectItem in selectList)
                {
                    string id = string.Format("{0}{1}", name, j++);
    
                    IDictionary<string, object> newHtmlAttributes = HtmlAttributes.DeepCopy();
                    newHtmlAttributes.Add("value", selectItem.Value);
                    newHtmlAttributes.Add("id", id);
                    var selectedValue = (selectList as SelectList).SelectedValue;
                    if (selectedValue == null)
                    {
                        if (i++ == 0)
                            newHtmlAttributes.Add("checked", null);
                    }
                    else if (selectItem.Value == selectedValue.ToString())
                    {
                        newHtmlAttributes.Add("checked", null);
                    }
    
                    TagBuilder tagBuilder = new TagBuilder("input");
                    tagBuilder.MergeAttributes<string, object>(newHtmlAttributes);
                    string inputAllHtml = tagBuilder.ToString(TagRenderMode.SelfClosing);
                    stringBuilder.AppendFormat(@" {0}  <label for='{2}'>{1}</label>",
                       inputAllHtml, selectItem.Text, id);
                }
                return MvcHtmlString.Create(stringBuilder.ToString());
    
            }
            private static IDictionary<string, object> DeepCopy(this IDictionary<string, object> ht)
            {
                Dictionary<string, object> _ht = new Dictionary<string, object>();
    
                foreach (var p in ht)
                {
                    _ht.Add(p.Key, p.Value);
                }
                return _ht;
            } 
        }
    }

     

    枚举帮助类代码

    using System;
    using System.Collections.Generic;
    using System.Linq;
    using System.Web;
    
    namespace SHH.Helpers
    {
        /// <summary>
        /// 枚举帮助类
        /// </summary>
        public class EnumHelper
        {
            /// <summary>
            /// 转换如:"enum1,enum2,enum3"字符串到枚举值
            /// </summary>
            /// <typeparam name="T">枚举类型</typeparam>
            /// <param name="obj">枚举字符串</param>
            /// <returns></returns>
            public static T Parse<T>(string obj)
            {
                if (string.IsNullOrEmpty(obj))
                    return default(T);
                else
                    return (T)Enum.Parse(typeof(T), obj);
            }
    
            public static T TryParse<T>(string obj, T defT = default(T))
            {
                try
                {
                    return Parse<T>(obj);
                }
                catch
                {
                    return defT;
                }
            }
    
            public static readonly string ENUM_TITLE_SEPARATOR = ",";
            /// <summary>
            /// 根据枚举值,返回描述字符串
            /// 如果多选枚举,返回以","分割的字符串
            /// </summary>
            /// <param name="e"></param>
            /// <returns></returns>
            public static string GetEnumTitle(Enum e, Enum language = null)
            {
                if (e == null)
                {
                    return "";
                }
                string[] valueArray = e.ToString().Split(ENUM_TITLE_SEPARATOR.ToArray(), StringSplitOptions.RemoveEmptyEntries);
                Type type = e.GetType();
                string ret = "";
                foreach (string enumValue in valueArray)
                {
                    System.Reflection.FieldInfo fi = type.GetField(enumValue.Trim());
                    if (fi == null)
                        continue;
                    EnumTitleAttribute[] attrs = fi.GetCustomAttributes(typeof(EnumTitleAttribute), false) as EnumTitleAttribute[];
                    if (attrs != null && attrs.Length > 0 && attrs[0].IsDisplay)
                    {
                        ret += attrs[0].Title + ENUM_TITLE_SEPARATOR;
                    }
                }
                return ret.TrimEnd(ENUM_TITLE_SEPARATOR.ToArray());
            }
    
            /// <summary>
            /// 根据枚举值,返回描述字符串
            /// 如果多选枚举,返回以","分割的字符串
            /// </summary>
            /// <param name="e"></param>
            /// <returns></returns>
            public static string GetAllEnumTitle(Enum e, Enum language = null)
            {
                if (e == null)
                {
                    return "";
                }
                string[] valueArray = e.ToString().Split(ENUM_TITLE_SEPARATOR.ToArray(), StringSplitOptions.RemoveEmptyEntries);
                Type type = e.GetType();
                string ret = "";
                foreach (string enumValue in valueArray)
                {
                    System.Reflection.FieldInfo fi = type.GetField(enumValue.Trim());
                    if (fi == null)
                        continue;
                    EnumTitleAttribute[] attrs = fi.GetCustomAttributes(typeof(EnumTitleAttribute), false) as EnumTitleAttribute[];
                    if (attrs != null && attrs.Length > 0)
                    {
                        ret += attrs[0].Title + ENUM_TITLE_SEPARATOR;
                    }
                }
                return ret.TrimEnd(ENUM_TITLE_SEPARATOR.ToArray());
            }
    
            public static EnumTitleAttribute GetEnumTitleAttribute(Enum e, Enum language = null)
            {
                if (e == null)
                {
                    return null;
                }
                string[] valueArray = e.ToString().Split(ENUM_TITLE_SEPARATOR.ToArray(), StringSplitOptions.RemoveEmptyEntries);
                Type type = e.GetType();
                EnumTitleAttribute ret = null;
                foreach (string enumValue in valueArray)
                {
                    System.Reflection.FieldInfo fi = type.GetField(enumValue.Trim());
                    if (fi == null)
                        continue;
                    EnumTitleAttribute[] attrs = fi.GetCustomAttributes(typeof(EnumTitleAttribute), false) as EnumTitleAttribute[];
                    if (attrs != null && attrs.Length > 0)
                    {
                        ret = attrs[0];
                        break;
                    }
                }
                return ret;
            }
    
            public static string GetDayOfWeekTitle(DayOfWeek day, Enum language = null)
            {
                switch (day)
                {
                    case DayOfWeek.Monday:
                        return "周一";
                    case DayOfWeek.Tuesday:
                        return "周二";
                    case DayOfWeek.Wednesday:
                        return "周三";
                    case DayOfWeek.Thursday:
                        return "周四";
                    case DayOfWeek.Friday:
                        return "周五";
                    case DayOfWeek.Saturday:
                        return "周六";
                    case DayOfWeek.Sunday:
                        return "周日";
                    default:
                        return "";
                }
            }
    
            /// <summary>
            /// 返回键值对,建为枚举的EnumTitle中指定的名称和近义词名称,值为枚举项
            /// </summary>
            /// <typeparam name="T">枚举类型</typeparam>
            /// <param name="language"></param>
            /// <returns></returns>
            public static Dictionary<string, T> GetTitleAndSynonyms<T>(Enum language = null) where T : struct
            {
                Dictionary<string, T> ret = new Dictionary<string, T>();
                //枚举值
                Array arrEnumValue = typeof(T).GetEnumValues();
                foreach (object enumValue in arrEnumValue)
                {
                    System.Reflection.FieldInfo fi = typeof(T).GetField(enumValue.ToString());
                    if (fi == null)
                    {
                        continue;
                    }
    
                    EnumTitleAttribute[] arrEnumTitleAttr = fi.GetCustomAttributes(typeof(EnumTitleAttribute), false) as EnumTitleAttribute[];
                    if (arrEnumTitleAttr == null || arrEnumTitleAttr.Length < 1 || !arrEnumTitleAttr[0].IsDisplay)
                    {
                        continue;
                    }
    
                    if (!ret.ContainsKey(arrEnumTitleAttr[0].Title))
                    {
                        ret.Add(arrEnumTitleAttr[0].Title, (T)enumValue);
                    }
    
                    if (arrEnumTitleAttr[0].Synonyms == null || arrEnumTitleAttr[0].Synonyms.Length < 1)
                    {
                        continue;
                    }
    
                    foreach (string s in arrEnumTitleAttr[0].Synonyms)
                    {
                        if (!ret.ContainsKey(s))
                        {
                            ret.Add(s, (T)enumValue);
                        }
                    }
                }//using
                return ret;
            }
    
            /// <summary>
            /// 根据枚举获取包含所有所有值和描述的哈希表,其文本是由应用在枚举值上的EnumTitleAttribute设定
            /// </summary>
            /// <returns></returns>
            public static Dictionary<T, string> GetItemList<T>(Enum language = null) where T : struct
            {
                return GetItemValueList<T, T>(false, language);
            }
    
            /// <summary>
            /// 根据枚举获取包含所有所有值和描述的哈希表,其文本是由应用在枚举值上的EnumTitleAttribute设定
            /// </summary>
            /// <returns></returns>
            public static Dictionary<T, string> GetAllItemList<T>(Enum language = null) where T : struct
            {
                return GetItemValueList<T, T>(true, language);
            }
    
            /// <summary>
            /// 获取枚举所有项的标题,其文本是由应用在枚举值上的EnumTitleAttribute设定
            /// </summary>
            /// <typeparam name="T">枚举类型</typeparam>
            /// <param name="language">语言</param>
            /// <returns></returns>
            public static Dictionary<int, string> GetItemValueList<T>(Enum language = null) where T : struct
            {
                return GetItemValueList<T, int>(false, language);
            }
    
            /// <summary>
            /// 获取枚举所有项的标题,其文本是由应用在枚举值上的EnumTitleAttribute设定
            /// </summary>
            /// <typeparam name="T">枚举类型</typeparam>
            /// <param name="isAll">是否生成“全部”项</param>
            /// <param name="language">语言</param>
            /// <returns></returns>
            public static Dictionary<TKey, string> GetItemValueList<T, TKey>(bool isAll, Enum language = null) where T : struct
            {
                if (!typeof(T).IsEnum)
                {
                    throw new Exception("参数必须是枚举!");
                }
                Dictionary<TKey, string> ret = new Dictionary<TKey, string>();
    
                var titles = EnumHelper.GetItemAttributeList<T>().OrderBy(t => t.Value.Order);
                foreach (var t in titles)
                {
                    if (!isAll && (!t.Value.IsDisplay || t.Key.ToString() == "None"))
                        continue;
    
                    if (t.Key.ToString() == "None" && isAll)
                    {
                        ret.Add((TKey)(object)t.Key, "全部");
                    }
                    else
                    {
                        if (!string.IsNullOrEmpty(t.Value.Title))
                            ret.Add((TKey)(object)t.Key, t.Value.Title);
                    }
                }
    
                return ret;
            }
    
            public static List<T> GetItemKeyList<T>(Enum language = null) where T : struct
            {
                List<T> list = new List<T>();
                Array array = typeof(T).GetEnumValues();
                foreach (object t in array)
                {
                    list.Add((T)t);
                }
                return list;
            }
    
            public static Dictionary<T, EnumTitleAttribute> GetItemAttributeList<T>(Enum language = null) where T : struct
            {
                if (!typeof(T).IsEnum)
                {
                    throw new Exception("参数必须是枚举!");
                }
                Dictionary<T, EnumTitleAttribute> ret = new Dictionary<T, EnumTitleAttribute>();
    
                Array array = typeof(T).GetEnumValues();
                foreach (object t in array)
                {
                    EnumTitleAttribute att = GetEnumTitleAttribute(t as Enum, language);
                    if (att != null)
                        ret.Add((T)t, att);
                }
    
                return ret;
            }
    
            /// <summary>
            /// 获取枚举所有项的标题,其文本是由应用在枚举值上的EnumTitleAttribute设定
            /// </summary>
            /// <typeparam name="T">枚举类型</typeparam>
            /// <param name="isAll">是否生成“全部”项</param>
            /// <param name="language">语言</param>
            /// <returns></returns>
            public static Dictionary<TKey, string> GetAllItemValueList<T, TKey>(Enum language = null) where T : struct
            {
                return GetItemValueList<T, TKey>(true, language);
            }
    
    
            /// <summary>
            /// 获取一个枚举的键值对形式
            /// </summary>
            /// <typeparam name="TEnum">枚举类型</typeparam>
            /// <param name="exceptTypes">排除的枚举</param>
            /// <returns></returns>
            public static Dictionary<int, string> GetEnumDictionary<TEnum>(IEnumerable<TEnum> exceptTypes = null) where TEnum : struct
            {
                var dic = GetItemList<TEnum>();
    
                Dictionary<int, string> dicNew = new Dictionary<int, string>();
                foreach (var d in dic)
                {
                    if (exceptTypes != null && exceptTypes.Contains(d.Key))
                    {
                        continue;
                    }
                    dicNew.Add(d.Key.GetHashCode(), d.Value);
                }
                return dicNew;
            }
    
    
        }
    
    
    
        public class EnumTitleAttribute : Attribute
        {
            private bool _IsDisplay = true;
    
            public EnumTitleAttribute(string title, params string[] synonyms)
            {
                Title = title;
                Synonyms = synonyms;
                Order = int.MaxValue;
            }
            public bool IsDisplay { get { return _IsDisplay; } set { _IsDisplay = value; } }
            public string Title { get; set; }
            public string Description { get; set; }
            public string Letter { get; set; }
            /// <summary>
            /// 近义词
            /// </summary>
            public string[] Synonyms { get; set; }
            public int Category { get; set; }
            public int Order { get; set; }
        }
    }

    枚举数据代码

    using System;
    using System.Collections.Generic;
    using System.Linq;
    using System.Web;
    
    namespace SHH.Helpers
    {
        public class EnumData
        {
            /// <summary>
            /// 性别
            /// </summary>
            public enum EnumSex
            {
                [EnumTitle("先生")]
                Sir = 1,
    
                [EnumTitle("女士")]
                Miss = 2
            }
            /// <summary>
            /// 预约时间
            /// </summary>
            public enum EnumBespeakDate
            {
                [EnumTitle("工作日(周一到周五)")]
                BespeakDate1 = 1,
    
                [EnumTitle("双休日")]
                BespeakDate2 = 2,
    
                [EnumTitle("工作日或双休日")]
                BespeakDate3 = 3
            }
            /// <summary>
            /// 预约时段
            /// </summary>
            public enum EnumBespeakTime
            {
                [EnumTitle("上午")]
                BespeakTime1 = 1,
    
                [EnumTitle("下午")]
                BespeakTime2 = 2,
    
                [EnumTitle("晚上")]
                BespeakDate3 = 3,
    
                [EnumTitle("随时")]
                BespeakDate4= 4
            }
    
            /// <summary>
            /// 售价
            /// </summary>
            public enum EnumPriceGroup
            {
                [EnumTitle("不限", IsDisplay = false)]
                None = 0,
    
                [EnumTitle("30万以下")]
                Below30 = 1,
    
                [EnumTitle("30-50万")]
                From30To50 = 2,
    
                [EnumTitle("50-80万")]
                From50To80 = 3,
    
                [EnumTitle("80-100万")]
                From80To100 = 4,
    
                [EnumTitle("100-150万")]
                From100To50 = 5,
    
                [EnumTitle("150-200万")]
                From150To200 = 6,
    
                [EnumTitle("200万以上")]
                Above200 = 7
            }
    
    
            /// <summary>
            /// 面积
            /// </summary>
            public enum EnumAcreageGroup
            {
    
                [EnumTitle("不限", IsDisplay = false)]
                None = 0,
    
                [EnumTitle("50mm以下")]
                Below50 = 1,
    
                [EnumTitle("50-70mm")]
                From50To70 = 2,
    
                [EnumTitle("70-90mm")]
                From70To90 = 3,
    
                [EnumTitle("90-120mm")]
                From90To120 = 4,
    
                [EnumTitle("120-150mm")]
                From120To150 = 5,
    
                [EnumTitle("150-200mm")]
                From150To200 = 6,
    
                [EnumTitle("200-300mm")]
                From200To300 = 7,
    
                [EnumTitle("300mm以上")]
                Above300 = 8
            }
    
    
            /// <summary>
            /// 房型  二室 三室 四室 五室 五室以上
            /// </summary>
            public enum EnumRoomGroup
            {
                [EnumTitle("不限", IsDisplay = false)]
                None = 0,
    
                [EnumTitle("一室")]
                Room1 = 1,
    
                [EnumTitle("二室")]
                Room2 = 2,
    
                [EnumTitle("三室")]
                Room3 = 3,
    
                [EnumTitle("四室")]
                Room4 = 4,
    
                [EnumTitle("五室")]
                Room5 = 5,
    
                [EnumTitle("五室以上")]
                Above5 = 6
            }
        }
    }

    Controller代码[RadioBox]

                ViewData.Add("EnumPriceGroup", new SelectList(EnumHelper.GetItemValueList<EnumData.EnumPriceGroup>(), "Key", "Value"));
                ViewData.Add("EnumAcreageGroup", new SelectList(EnumHelper.GetItemValueList<EnumData.EnumAcreageGroup>(), "Key", "Value"));
                ViewData.Add("EnumRoomGroup", new SelectList(EnumHelper.GetItemValueList<EnumData.EnumRoomGroup>(), "Key", "Value"));


    View代码[RadioBox]

    @Html.RadioBoxList("EnumPriceGroup")
    @Html.RadioBoxList("EnumAcreageGroup")
    @Html.RadioBoxList("EnumRoomGroup")

     Controller代码[CheckBox]

    TagRepository tagrep = new TagRepository(); 
                var tag = tagrep.GetModelList().Where(d=>d.TypeID==1);
                ViewBag.Tags = new SelectList(tag, "TagID", "TagName");
                var tag1 = tagrep.GetModelList().Where(d => d.TypeID == 2);
                ViewBag.Tags1 = new SelectList(tag1, "TagID", "TagName");
                var tag2 = tagrep.GetModelList().Where(d => d.TypeID == 3);
                ViewBag.Tags2 = new SelectList(tag2, "TagID", "TagName");
     /// <summary>
            /// 添加 GET: /admin/House/Add
            /// </summary>
            /// <param name="model">实体类</param>
            /// <param name="fc"></param>
            /// <returns></returns>
            [Authorize, HttpPost, ValidateInput(false)]
            public ActionResult Add(House model, FormCollection fc,int[] Tags, int[] Tags1,int[] Tags2)
            {
               
                model.State = 1;
                model.CreateTime = DateTime.Now;
                HouseControllerrep.SaveOrEditModel(model);
    
                if (Tags.Length > 0)
                {
                    
                    foreach (int gsi in Tags){
                    TagHouseMapping thmtag = new TagHouseMapping();
                    thmtag.TagID=gsi;
                    thmtag.HouseID = model.HouseID;
                    thmtag.State = 1;
                    thmtag.CreateTime = DateTime.Now;
                    TagCrep.SaveOrEditModel(thmtag);
                    }
                }
                if (Tags1.Length > 0)
                {
    
                    foreach (int gsi in Tags1)
                    {
                        TagHouseMapping thmtag = new TagHouseMapping();
                        thmtag.TagID = gsi;
                        thmtag.HouseID = model.HouseID;
                        thmtag.State = 1;
                        thmtag.CreateTime = DateTime.Now;
                        TagCrep.SaveOrEditModel(thmtag);
                    }
                }
                if (Tags2.Length > 0)
                {
    
                    foreach (int gsi in Tags2)
                    {
                        TagHouseMapping thmtag = new TagHouseMapping();
                        thmtag.TagID = gsi;
                        thmtag.HouseID = model.HouseID;
                        thmtag.State = 1;
                        thmtag.CreateTime = DateTime.Now;
                        TagCrep.SaveOrEditModel(thmtag);
                    }
                }
                return RedirectToAction("Index");
            }
            #endregion

    View代码[CheckBox]

     @Html.CheckBoxList("Tags")
     @Html.CheckBoxList("Tags1")
     @Html.CheckBoxList("Tags2")

    CheckBoxList效果

    RadioBoxList效果

    声明:本博客高度重视知识产权保护,发现本博客发布的信息包含有侵犯其著作权的链接内容时,请联系我,我将第一时间做相应处理,联系邮箱ffgign@qq.com

     


    作者:Mark Fan (小念头)    
    来源:http://cube.cnblogs.com
    说明:未经作者同意必须保留此段声明,且在文章页面明显位置给出原文连接,否则保留追究法律责任的权利。如有疑问,可以通过 ffgign@qq.com 联系作者,本文章采用 知识共享署名-非商业性使用-相同方式共享 2.5 中国大陆许可协议进行许可

     

  • 相关阅读:
    abcde =(ab+cd)的平方
    求水仙花数
    VS2019 开发 MFC ACtivex (OCX)控件
    简单体验pdfjs,并且隐藏下载、打印等按钮
    体验win10的linux子系统
    nodejs 连接 mysql 查询事务处理
    Linux系統日常運維管理
    hexo豆瓣卡片安裝遇到的坑
    ZooKeeper 是什么与概述,典型用例
    K8S_Kubernetes
  • 原文地址:https://www.cnblogs.com/cube/p/3539467.html
Copyright © 2011-2022 走看看