动态加载的树形菜单
时间:2022-07-25
本文章向大家介绍动态加载的树形菜单,主要内容包括其使用实例、应用技巧、基本知识点总结和需要注意事项,具有一定的参考价值,需要的朋友可以参考一下。
动态加载的树形菜单
开发工具与关键技术:MVC 树形菜单
作者:盘洪源
撰写时间:2019年6月2日星期天
在做到页面需要做到树形菜单,而且还是动态从数据库加载数据的,就是树形菜单的节点由数据库的数据来填充。
首先一开始是这个数据库的设置,这个数据库的设置很重要,一开始想着这个树形菜单可以无限级的循坏下去,这得建多少个表啊,后来才发现自己想多了,只需要一个表格就可以实现了,如下
数据库表的设置大概是这样,就是给这个表加上一个字段pId,这上面的关系怎么看,1和2的pId都是0就是说他们没有上一级,1-1和1-2的pId为1说明他们的上一级是1就是这样一层一层嵌套下去,这样就可以实现无限级的树形菜单
这个代码是怎么实现的,如下:
这个代码是怎么实现的,如下:
后台请求数据代码:
public ActionResult ZtreeData(int id = 0)
{
var
list = (from tbClass in myModels.S_Classify
where tbClass.ParentID==id
select new
{
id =
tbClass.ClassifyID,
pId =
tbClass.ParentID,
name =
tbClass.ClassifyName,
isParent =
myModels.S_Classify.Any(a => a.ParentID == tbClass.ClassifyID)
});
return
Json(list, JsonRequestBehavior.AllowGet);
}
前台初始化树形菜单的代码:
var setting = {
async:
{
enable: true,
url: "/MessageMaintain/Classes/ZtreeData",//数据请求地址
autoParam: ["id" ],//像后台请求数据时的参数
},
callback: {
//onClick: click,
onMouseDown: onMouseDown,
}
};
//页面加载事件
$(function
() {
$.fn.zTree.init($("#treeDemo"), setting);
})
function
onMouseDown(event, treeId, treeNode) {
}
HTML代码:
<ul id="treeDemo"
class="ztree px-0" style="margin:0px
0;background:white;"></ul>
引用插件:
<link href="~/Plugins/css/zTreeStyle/zTreeStyle.css"
rel=“stylesheet” />
这是用到zTree的一个插件。
这是一个很简单的树形菜单,首先开始的在后台将数据库中的数据查询出来,前台就初始化这个树,通过url请求到数据,然后就在页面加载事件初始化这个树。Callback这里面放着是鼠标点击事件,还可以放一下其他的事件,这个可以去zTree的官网去看详情。了解的不多,所以做的树也比较随便就将就看着点。
下面就是效果图:
- JavaScript 教程
- JavaScript 编辑工具
- JavaScript 与HTML
- JavaScript 与Java
- JavaScript 数据结构
- JavaScript 基本数据类型
- JavaScript 特殊数据类型
- JavaScript 运算符
- JavaScript typeof 运算符
- JavaScript 表达式
- JavaScript 类型转换
- JavaScript 基本语法
- JavaScript 注释
- Javascript 基本处理流程
- Javascript 选择结构
- Javascript if 语句
- Javascript if 语句的嵌套
- Javascript switch 语句
- Javascript 循环结构
- Javascript 循环结构实例
- Javascript 跳转语句
- Javascript 控制语句总结
- Javascript 函数介绍
- Javascript 函数的定义
- Javascript 函数调用
- Javascript 几种特殊的函数
- JavaScript 内置函数简介
- Javascript eval() 函数
- Javascript isFinite() 函数
- Javascript isNaN() 函数
- parseInt() 与 parseFloat()
- escape() 与 unescape()
- Javascript 字符串介绍
- Javascript length属性
- javascript 字符串函数
- Javascript 日期对象简介
- Javascript 日期对象用途
- Date 对象属性和方法
- Javascript 数组是什么
- Javascript 创建数组
- Javascript 数组赋值与取值
- Javascript 数组属性和方法
- python生成器函数的应用场景举例---为copy过程添加进度条显示
- 短网址程序YOURLS安装及配置教程与设置中文
- MGR用哪个版本?5.7 vs 8.0
- 同事直呼666!小姐姐仅用3行代码就能玩出花来
- MySQL升级至8.0需要考虑哪些因素?
- 某云Music——JS破解全过程
- 和低效 IO 说再见,回头补一波 Java 7 的 NIO.2 特性
- 框架源码调试实战之easypoi异常解决方案精讲
- MySQL8.0的错误日志
- Shiro学习笔记(一)
- Shiro学习笔记(二)
- Shiro学习笔记 三(认证授权)
- Shiro学习笔记四(Shiro集成WEB)
- Shiro学习笔记五(Shiro标签,及通配符)
- Shiro学习笔记六(自定义Reaml-使用数据库设置 user roles permissions)