.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

原文地址:https://www.cnblogs.com/ytdqr/p/11254481.html

时间: 2024-08-28 11:04:15

.Net MVC 动态生成LayUI tree的相关文章

MVC动态生成的表单:表单元素比较多 你就这样写

MVC动态生成的表单:表单元素比较多 你就这样写: public ActionResult ShoudaanActionResult(FormCollection from,T_UserM user) { List<string> daan = new List<string>(); for (int i = 4; i < from.Count; i++) { daan.Add(from[i].ToString()); } QSAcceptAnswer qaa = new Q

ASP.NET MVC动态生成网站菜单及子菜单

在开发ASP.NET MVC网站时,Insus.NET想实现动态产生网站的主菜单及子菜单. 你需要在网站管理后台管理此2张表(Menu,SubMenu)的信息,添加,删除,编辑,更新等. Sequence字段是序号.主菜单按此序号排序.IsMenu字段,添加上来的,不一定是菜单字段. 下面Insus.NET有此表添加的内容如下: 以上上主菜单,下面再来看来看看子菜单,结构与数据: 在子菜单的表结构中,也有一个Sequence字段,这个字段也是序号,不过它是按Controller字段来排序的.可以

MVC动态生成表单

1*书写方式 一.using语句可以不写结束标记,自动加上 服务端 客户端 默认提交当前控制器和操作方法 二.开始与结束代码都写 服务端 客户端

PHP+Mysql+easyui点击左侧tree菜单对应表名右侧动态生成datagrid加载表单数据(二)

关于tree菜单生成,参考我的另一篇博文地址tree 菜单 实现功能:点击左侧tree菜单中的table,右侧通过datagrid加载出该表对用的所有数据 难点:获取该表的所有列名,动态生成datagrid,并加载数据 解决办法: 使用tree菜单的onClick事件: $('#tree').tree( { url:'tree_getData.php', onClick:function(node){ //判断点击的节点是否是子节点是子节点就创建datagrid,否则就return打开这个节点

MVC 5 + EF6 入门完整教程14 -- 动态生成面包屑导航

上篇文章我们完成了 动态生成多级菜单 这个实用组件. 本篇文章我们要开发另一个实用组件:面包屑导航. 面包屑导航(BreadcrumbNavigation)这个概念来自童话故事"汉赛尔和格莱特",当汉赛尔和格莱特穿过森林时,不小心迷路了,但是他们发现在沿途走过的地方都撒下了面包屑,让这些面包屑来帮助他们找到回家的路.所以,面包屑导航的作用是告诉访问者他们目前在网站中的位置以及如何返回.(摘自百度百科) 要实现面包屑导航,也可以直接从nuget搜一些sitemap组件直接使用. 当然,和

MVC&amp;JQuery如何根据List动态生成表格

背景:在编码中,常会遇到根据Ajax的结果动态生成Table的情况,本篇进行简要的说明.这已经是我第4.5篇和Ajax有关的随笔了,互相之间有很多交叠的地方,可自行参考. 后台代码如下: 1 public ActionResult Index() 2 { 3 4 return View(); 5 } 6 7 8 public ActionResult GetStus() 9 { 10 List<Stu> ListStu = new List<Stu>(){ 11 new Stu{A

MVC 根据模板动态生成静态页面

不是自己想出来的,找了好久没有找到相关的内容,根据源码发现 返回视图时时返回的ActionResult 类型的对象,然后执行ExecuteResult 方法,源码如下: 1 public override void ExecuteResult(ControllerContext context) 2 { 3 if (context == null) 4 { 5 throw new ArgumentNullException("context"); 6 } 7 if (string.Is

MVC:页面提交JQ动态生成的输入框的值得解决方案:

一,动态生成JS写法 <script type="text/javascript"> var numlist = new Array(2, 3, 4, 5); function Additional() { var num = $("#AdditionalNum").val(); //定义的隐藏的保存当前在页面上存在的数量,最多五个 if (num == 5) { alert("最多加五个"); return; } var delet

动态生成多级菜单

MVC5+EF6 入门完整教程13 -- 动态生成多级菜单 稍微有一定复杂性的系统,多级菜单都是一个必备组件. 本篇专题讲述如何生成动态多级菜单的通用做法. 我们不用任何第三方的组件,完全自己构建灵活通用的多级菜单. 需要达成的效果:容易复用,可以根据model动态产生. 文章提纲 概述要点 && 理论基础 详细步骤 一.分析多级目录的html结构 二.根据html结构构建data model 三.根据data model动态生成树形结构 四.解析树形结构成html 总结 概述要点 &am