ASP源码.NET源码PHP源码JSP源码JAVA源码DELPHI源码PB源码VC源码VB源码Android源码
当前位置:首页 >> 低调看直播体育app软件下载 >> .NETjrs看球网直播吧_低调看直播体育app软件下载_低调看体育直播 >> MVC树控件,mvc中应用treeview,实现复选框树的多层级表单控件

MVC树控件,mvc中应用treeview,实现复选框树的多层级表单控件(1/3)

来源:网络整理     时间:2016-06-05     关键词:treeview

本篇文章主要介绍了"MVC树控件,mvc中应用treeview,实现复选框树的多层级表单控件",主要涉及到treeview方面的内容,对于.NETjrs看球网直播吧_低调看直播体育app软件下载_低调看体育直播感兴趣的同学可以参考一下: 类似于多层级的角色与权限控制功能,用MVC实现MVC树控件,mvc中应用treeview,实现复选框树的多层级表单控件。最近我们的项目中需要用到树型菜单,以前使...

类似于多层级的角色与权限控制功能,用MVC实现MVC树控件,mvc中应用treeview,实现复选框树的多层级表单控件。最近我们的项目中需要用到树型菜单,以前使用WebForm时,树型菜单有微软提供的控件,非常方便,但现在需要在asp.netmvc中使用树形菜单,先说明下我们对树形菜单的需求:

1,支持CheckBox,允许对菜单项进行选择;
2,当选择父菜单时,它下面的子菜单全部选中;
3,当取消父菜单的选中状态时,下面的子菜单也全部取消;
4,比较方便的与MVC结合;

5,能够初始化选中状态。

6,能够以提交表单的方式,一次性将树绑定到后台接收的对象。

首先菜单数据对象:

完整的 CheckboxTreeHelper.cs 代码:

  1using System;
  2using System.Collections.Generic;
  3using System.Linq;
  4using System.Web;
  5using System.Web.Mvc;
  6using System.Web.Mvc.Html;
  7using System.Text;
  8  9/* 10author:熊学浩
 11time:2016年6月5日
 12description:树形菜单控件(有问题请致信:xiongzaiqiren@163.com),或者请参考【http://www.cnblogs.com/xiongzaiqiren/ 13*/ 14namespace System.Web.Mvc
 15{
 16/// 17/// 菜单数据对象
 18/// 19publicclass CheckboxTreeItem
 20    {
 21/// 22/// 显示的文本
 23/// 24publicstring Text { get; set; }
 25/// 26/// 显示文本对应的值
 27/// 28publicstring Value { get; set; }
 29/// 30/// 是否被选中
 31/// 32publicbool Checked { get; set; }
 33/// 34/// 结合表单的辅助属性,View上使用(注意每个层级的索引必需从0开始并且是连续的)
 35/// 36publicstring Index { get; set; }
 37 38/// 39/// 子菜单集合
 40/// 41public IList Items { get; set; }
 42    }
 43 44/// 45/// 复选框树控件
 46/// 熊学浩
 47/// 2016年6月3日
 48/// 49publicstaticclass CheckboxTreeHelper
 50    {
 51privatestaticbool baselayer;
 52 53publicstatic String CheckboxTree(this HtmlHelper helper, string Name, CheckboxTreeItem Model, outstring this_HtmlDomName, bool isChildNode = false)
 54        {
 55if (null == Model)
 56            {
 57                 this_HtmlDomName = string.Empty;
 58returnstring.Empty;
 59            }
 60 61             StringBuilder sb = new StringBuilder();
 62if (!baselayer)
 63                 sb.Append("
"); 64 65if (!isChildNode) 66 sb.Append("
    "); 67 sb.Append("
  • "); 68 69 this_HtmlDomName = Name + "[" + Model.Index + "]"; 70 71 sb.Append(""); 72 sb.AppendFormat("", (this_HtmlDomName + ".Checked"), Model.Checked.ToString()); 73 sb.AppendFormat("{0}", Model.Text); 74 sb.Append(""); 75 76 sb.AppendFormat("", (this_HtmlDomName + ".Text"), Model.Text); 77 sb.AppendFormat("", (this_HtmlDomName + ".Value"), Model.Value); 78 sb.AppendFormat("", (this_HtmlDomName + ".Index"), Model.Index); 79 80if (null != Model.Items) 81 { 82 sb.Append("
      "); 83for (var i = 0; i < Model.Items.Count; i++) 84 { 85string _this_HtmlDomName; 86 sb.Append(CheckboxTree(helper, this_HtmlDomName + ".Items", Model.Items[i], out _this_HtmlDomName, true)); 87 } 88 sb.Append(""); 89 } 90 91 sb.Append(""); 92if (!isChildNode) 93 sb.Append(""); 94 95if (!baselayer) 96 sb.Append("
      "); 97 98return sb.ToString(); 99 } 100publicstatic String CheckboxTree(this HtmlHelper helper, string Name, IList Models) 101 { 102if (null == Models) returnstring.Empty; 103if (Models.Count > 0) 104 baselayer = true; 105106 StringBuilder sb = new StringBuilder(); 107if (baselayer) 108 sb.Append("
      "); 109 sb.Append("
        "); 110111string _this_HtmlDomName; 112113foreach (CheckboxTreeItem item in Models) 114 { 115 sb.Append(CheckboxTree(helper, Name, item, out _this_HtmlDomName, true)); 116 } 117118 sb.Append(""); 119if (baselayer) 120 sb.Append("
        "); 121122return sb.ToString(); 123 } 124 } 125 }

        相关图片

        相关文章