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.查看结果



  • 2
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值