.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部分

//这里我用的是Ajax 动态加载
这里有个坑是 ajax 接收到的数据需要用 JSON.parse(result) 不然渲染不上去 会出现 这样的情况

function SetTree() {
layui.use('tree', function () {//初始化Tree
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();
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 = "",
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的更多相关文章

  1. .Net Mvc 返回Json,动态生成EasyUI Tree

    最近做一个项目,开始接触EasyUI,感觉很强大,很适合我这种对前台不是很感冒的人.在学习Tree的过程中,感觉网上的资料挺乱的,很多只是把EasyUI API 抄了一遍.现在把最近这段时间的学到的, ...

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

    MVC动态生成的表单:表单元素比较多 你就这样写: public ActionResult ShoudaanActionResult(FormCollection from,T_UserM user) ...

  3. 从数据库读取数据并动态生成easyui tree构结

    一. 数据库表结构 二.从后台读取数据库生成easyui tree结构的树 1.TreeNode树结点类(每个结点都包含easyui tree 的基本属性信息) import java.io.Seri ...

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

    在开发ASP.NET MVC网站时,Insus.NET想实现动态产生网站的主菜单及子菜单. 你需要在网站管理后台管理此2张表(Menu,SubMenu)的信息,添加,删除,编辑,更新等. Sequen ...

  5. MVC动态生成表单

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

  6. mvc动态生成a标签,多个属性,多个querystring

    1*服务端 客户端 跳转的url 2*服务端 客户端 跳转的url 3*服务端 客户端  跳转的url  4*服务端 客户端 跳转的url

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

    关于tree菜单生成,参考我的另一篇博文地址tree 菜单 实现功能:点击左侧tree菜单中的table,右侧通过datagrid加载出该表对用的所有数据 难点:获取该表的所有列名,动态生成datag ...

  8. 如何用asp.net MVC框架、highChart库从sql server数据库获取数据动态生成柱状图

    如何用asp.net MVC框架.highChart库从sql server数据库获取数据动态生成柱状图?效果大概是这样的,如图: 请问大侠这个这么实现呢?

  9. C# 动态生成word文档 [C#学习笔记3]关于Main(string[ ] args)中args命令行参数 实现DataTables搜索框查询结果高亮显示 二维码神器QRCoder Asp.net MVC 中 CodeFirst 开发模式实例

    C# 动态生成word文档 本文以一个简单的小例子,简述利用C#语言开发word表格相关的知识,仅供学习分享使用,如有不足之处,还请指正. 在工程中引用word的动态库 在项目中,点击项目名称右键-- ...

随机推荐

  1. Redis EXISTS命令耗时过长case排查

    一.背景 redis慢日志分析平台上线后,随便看了一下,发现onestore使用的缓存集群,存在大量的EXISTS命令慢查询的情况: 平均每个EXISTS命令需要13ms,最大耗时近20ms.这个结果 ...

  2. Java 转PPT为图片、PDF、SVG、XPS、ODP以及PPT和PPTX互转

    同一文档,在不同的文档查看器或者编译环境中,需要对该文档进行相应的格式转换.下面的内容中,将介绍通过Java编程来实现PPT文档格式转换的方法. 使用工具: Spire.Presentation fo ...

  3. Spark之权威指南经典案例

    hadoop权威指南上有一个求历史最高温度的经典案例,源数据如下: -- sample.txt0067011990999991950051507004+68750+023550FM-12+038299 ...

  4. 常用Linux网络命令

    TCP状态统计: netstat -anp TCP各个状态的连接数:netstat -n | awk '/^tcp/ {++S[$NF]} END {for(a in S) print a, S[a] ...

  5. Zabbix集成Cloud Alert(睿象云)实现电话短信预警

    Zabbix 集成 睿象云智能告警平台 CA ( Cloud Alert ) 一 .简介与前期了解 Cloud Alert 通过应用,接入监控系统/平台的告警,集中管理您的告警,统一分派通知,统一分析 ...

  6. 如何开发优质的 Flutter App:应用架构的搭建

    各位读者朋友们,好久不见了! 最近博主一直在忙于工作以及写<Flutter入门与应用实战>的书,所以没有时间打理博客.今天来给大家分享一个博主在GitChat上发起的一场Chat. 下面是 ...

  7. IM推送保障及网络优化详解(一):如何实现不影响用户体验的后台保活

    对于移动APP来说,IM功能正变得越来越重要,它能够创建起人与人之间的连接.社交类产品中,用户与用户之间的沟通可以产生出更好的用户粘性. 在复杂的 Android 生态环境下,多种因素都会造成消息推送 ...

  8. Storm 学习之路(一)—— Storm和流处理简介

    一.Storm 1.1 简介 Storm 是一个开源的分布式实时计算框架,可以以简单.可靠的方式进行大数据流的处理.通常用于实时分析,在线机器学习.持续计算.分布式RPC.ETL等场景.Storm具有 ...

  9. 为什么string是引用类型 值还不可以修改

    C#把数据类型分为值类型和引用类型.值类型操作简单,引用类型更省空间. C#一共有15个预定义类型,其中13个值类型(8个整型.2个浮点类型.decimal.bool.char),2个引用类型(str ...

  10. Jenkins+Python+GitLab持续集成

    创建任务 登录Jenkins,点击左侧列表的新建选项.输入任务名称,选择构建一个自由风格的软件项目,点击确定. 配置 在任务配置界面,可以设置General标签中的丢弃旧的构建选项,设置保持构建的天数 ...