zoukankan      html  css  js  c++  java
  • MVC readioButtonList的创作过程及运用

    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=0)
            {
                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 = 0)
            {
                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"
          }
    },"个人",0)

    其实  复选也一样! checkBoxlist

  • 相关阅读:
    http delete 服务端拿不到body
    VUE 指定、获取DOM元素的自定义值
    delphi + redis 实现即时消息
    VUE 父组件、子组件图片链接
    【杂记】Linux 学习笔记
    【杂记】Oracle
    iOS 容易造成循环引用的三种场景
    NSNotificationCenter KVO KVC Delegate Block
    C语言和OC的区别? 面向对象和面向过程的区别?
    SDWebImage的实现原理
  • 原文地址:https://www.cnblogs.com/yingger/p/5402728.html
Copyright © 2011-2022 走看看