当前位置: 首页 > news >正文

MVC 中使用TreeView

为了灵活性,本例中实现是在View中完成递归逻辑,因此可以在递归过程中控制样式,内容的render

也可以选择在后端完成递归逻辑返回partial 然后在前端jquery中加class





1. 从这里下载
http://bassistance.de/jquery-plugins/jquery-plugin-treeview/


2. 将以下3个文件copy到项目中,如下所示:





3. 准备view model


public class JqTreeViewNode
    {
        public string Name { get; set; }
        public IList<JqTreeViewNode> Children { get; set; }


        public JqTreeViewNode()
        {
            Children = new List<JqTreeViewNode>();
        }
        public static JqTreeViewNode CreateTest()
        {
            return new JqTreeViewNode()
            {
                Name = "Root",
                Children = new List<JqTreeViewNode>()
                {
                    new JqTreeViewNode()
                    {
                        Name = "ChildLvl1-1",
                        Children = new List<JqTreeViewNode>
                        {
                            new JqTreeViewNode()
                            {
                                Name = "ChildLvl2-1",
                                Children = new List<JqTreeViewNode>()
                                {
                                    new JqTreeViewNode()
                                    {
                                        Name = "ChildLvl3-1",
                                    },
                                    new JqTreeViewNode(){Name = "ChildLv3-2"},
                                    new JqTreeViewNode(){Name = "ChildLv3-3"}
                                }
                            },
                            new JqTreeViewNode(){Name = "ChildLv2-2"}
                        }
                    },
                    new JqTreeViewNode(){Name = "ChildLv1-2"}
                }
            };
        }
    }




4. controller 
public ActionResult Index()
        {


            return View(JqTreeViewNode.CreateTest());
        }




5. view 
@model WebApplication1.Controllers.JqTreeViewNode


<link href="~/Content/External/jquery.treeview.css" rel="stylesheet" />
@section scripts{
    <script src="~/Content/External/jquery.treeview.js"></script>
<script type="text/javascript">
    $(document).ready(function () {
        $(".treeview-gray").treeview({ collapsed: true });
    });


</script>


}


<div>
    JqTreeView
</div>
<div>
    @Html.Partial("JqTreeView", Model)
</div>




6. partial view (也可用display template)


@using WebApplication1.Controllers
@model WebApplication1.Controllers.JqTreeViewNode


<ul style="margin: 5px" class="treeview-gray">
    @{
        if (Model.Children.Any())
        {
            foreach (JqTreeViewNode item in Model.Children)
            {


                <li style="margin-left: 20px">
                    @item.Name
                    @{
                if (item.Children.Any())
                {
                    @Html.Partial("JqTreeView", item)
                }
                    }


                </li>
            }
        }
    }
</ul>




7.查看结果



相关文章:

  • .Net的DataSet直接与SQL2005交互
  • MVC4 使用 bootstrap daterangepicker
  • bootstrap 的 collapse 使用示例
  • 【精典】教你如何玩转触控S60诺基亚5800
  • ASP.NET MVC 中 如何将同一个form post到不同的action
  • 日本软件公司 管理者 改善 流程
  • C#委托和事件,ObServer模式实例代码
  • Mysql中文乱码的解决方法
  • 关于功能的设计
  • 清楚数据库中的全部数据并将ID归零
  • Java Web项目开发到底需要掌握哪些技术?
  • C# 判断时间段是否相交
  • lyo blog3D文章集锦
  • 使用c# Mongo Driver 完成嵌套查询
  • 过渡到SSAS之一:简单模型认识
  • [原]深入对比数据科学工具箱:Python和R 非结构化数据的结构化
  • 【编码】-360实习笔试编程题(二)-2016.03.29
  • 【刷算法】从上往下打印二叉树
  • Cookie 在前端中的实践
  • Java 23种设计模式 之单例模式 7种实现方式
  • java取消线程实例
  • Spark VS Hadoop:两大大数据分析系统深度解读
  • UEditor初始化失败(实例已存在,但视图未渲染出来,单页化)
  • Vue官网教程学习过程中值得记录的一些事情
  • 创建一个Struts2项目maven 方式
  • 深入体验bash on windows,在windows上搭建原生的linux开发环境,酷!
  • 正则表达式小结
  • 交换综合实验一
  • # 深度解析 Socket 与 WebSocket:原理、区别与应用
  • (04)odoo视图操作
  • (1/2) 为了理解 UWP 的启动流程,我从零开始创建了一个 UWP 程序
  • (14)目标检测_SSD训练代码基于pytorch搭建代码
  • (4) PIVOT 和 UPIVOT 的使用
  • (function(){})()的分步解析
  • (javascript)再说document.body.scrollTop的使用问题
  • (初研) Sentence-embedding fine-tune notebook
  • (附源码)php投票系统 毕业设计 121500
  • (附源码)springboot青少年公共卫生教育平台 毕业设计 643214
  • (附源码)ssm教材管理系统 毕业设计 011229
  • (附源码)ssm旅游企业财务管理系统 毕业设计 102100
  • (深度全面解析)ChatGPT的重大更新给创业者带来了哪些红利机会
  • .NET : 在VS2008中计算代码度量值
  • .NET Core SkiaSharp 替代 System.Drawing.Common 的一些用法
  • .Net Core和.Net Standard直观理解
  • .NET MAUI学习笔记——2.构建第一个程序_初级篇
  • .net MVC中使用angularJs刷新页面数据列表
  • .net Signalr 使用笔记
  • .NET开发不可不知、不可不用的辅助类(三)(报表导出---终结版)
  • /dev下添加设备节点的方法步骤(通过device_create)
  • @AliasFor注解
  • @converter 只能用mysql吗_python-MySQLConverter对象没有mysql-connector属性’...
  • [BT]小迪安全2023学习笔记(第15天:PHP开发-登录验证)
  • [BZOJ 1040] 骑士
  • [CF226E]Noble Knight's Path
  • [Django ]Django 的数据库操作