.Net MVC 动态生成LayUI tree

Posted ytdqr

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了.Net MVC 动态生成LayUI tree相关的知识,希望对你有一定的参考价值。

.Net MVC 动态生成LayUI tree

最近在做项目的过程中需要用到Tree插件,所以找了一堆Tree发现LayUI的Tree样式比较好看,所以开始搞!

1.Layui部分

  1.1 首先引用文件是必不可少的:(依赖于Jquery)

<link type="text/css" rel="Stylesheet" href="~/Content/js/plugins/layui-v2.5.4/layui-v2.5.4/layui/css/layui.css" />
<script type="text/javascript" src="~/Content/js/plugins/layui-v2.5.4/layui-v2.5.4/layui/layui.js"></script>

   1.2 Js部分

function SetTree() 
        layui.use(‘tree‘, function () 
            var tree = layui.tree;
            $.ajax(
                type: "POST",
                url: "/CmdSite/GetTreeEntity",
                data: ,
                success: function (result) 
                    var inst1 = tree.render(
                        elem: ‘#menuTree‘,
                        id: ‘tree‘,
                        data: JSON.parse(result),
                        isJump: true,//以下配置项参考Layui Tree 官方文档
                        showLine: true,
                        onlyIconControl: true,
                        accordion:false,
                        click: function (obj) 
                            var data = JSON.stringify(obj.data);//这里是点击获得数据
                            var jsonData = JSON.parse(data);
                        
                    );
                ,
                error: function (e) 
                    console.log(e.status);
                    console.log(e.responseText);
                
            );
        );
    

  1.3 Html部分

 <div id="menuTree" class="demo-tree-more"></div>
这就很省事了!

2. .Net部分

  2.1 你得有个实体类

     //这里面字段最好对应文档里面的
     public
class treeEntity /// <summary> /// 主键ID /// </summary> public int id get; set; /// <summary> /// 父ID /// </summary> public string pid get; set; /// <summary> /// 名称 /// </summary> public string title get; set; /// <summary> /// 图标 /// </summary> public string icon get; set; /// <summary> /// 链接 /// </summary> public string url get; set; /// <summary> /// 排序 /// </summary> public string sort get; set; /// <summary> /// 是否展开 /// </summary> public bool spread get;set; /// <summary> /// 子节点 /// </summary> public List<treeEntity> children get; set;

 

  2.2 遍历拼接

  

      /// <summary>
        /// 获得Tree实体(我只做了二级的 有需要的可以自己改成递归)
        /// </summary>
        /// <returns></returns>
        public static string GetTreeEntityJson()
        
            var CategoryList = Dao.BLL.MenuCategory.QueryListByFMcid(0);
            var menuList = new List<treeEntity>();
            foreach (var item in CategoryList)
            
                treeEntity tree = new treeEntity
                
                    icon = item.icon,
                    id = item.mcid,
                    title = item.name,
                    sort = item.sort.ToString(),
                    pid = "0",
                    url = "",
                    spread=true,
                ;
                var menuEntityList = Dao.BLL.Menu.QueryListByMcid(item.mcid);
                var childrenList = new List<treeEntity>();
                foreach (var ChildItem in menuEntityList)
                
                    treeEntity ChindrenTree = new treeEntity
                    
                        icon = "fa fa-diamond",
                        id = (int)ChildItem.menu,
                        title = ChildItem.name,
                        sort = ChildItem.sort.ToString(),
                        pid = ChildItem.mcid.ToString(),
                        url = "",
                        children=null,
                        spread = true,
                    ;
                    childrenList.Add(ChindrenTree);
                
                tree.children = childrenList;
                menuList.Add(tree);
            
            var menuJson = Newtonsoft.Json.JsonConvert.SerializeObject(menuList);
            return menuJson;

  2.3 返回Json

 

    public string GetTreeEntity()
        
            return JQLY.Helper.MenuHelper.GetTreeEntityJson();
        

 

这样就搞定了!

 

LayUI地址:https://www.layui.com

以上是关于.Net MVC 动态生成LayUI tree的主要内容,如果未能解决你的问题,请参考以下文章

asp.net MVC动态路由

在 ASP.NET MVC 中动态生成 Javascript、CSS

asp.net mvc 3 和动态视图生成

如何使用 jquery unobtrusive 和 Asp.Net Mvc 验证动态生成的单选按钮组?

解决Layui动态生成select下拉选择框不显示问题

如何使用jQuery unobtrusive和Asp.Net Mvc验证动态生成的单选按钮组?