IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> JavaScript知识库 -> layui树形组件渲染 -> 正文阅读

[JavaScript知识库]layui树形组件渲染

在我们做项目的时候常常都会遇到一些新的知识,老师也没讲过的一些知识,那这些知识就需要我们自己去寻找,今天,我要讲的就是在做项目的时候会出现的一个东西:树形组件

如下图所示:

这个组件如何实现呢?

网上找?

很正确!

  • 在网上找一个Layui官网,打开:

里面就有我们想要的,但是也不完全是我们想要的( ̄. ̄)

它只有一个简单的渲染:

<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<title>树组件</title>
<link rel="stylesheet" href="../src/css/layui.css">
</head>
<body>
<div id="test1"></div>
<script src="../src/layui.js"></script>
<script>
layui.use('tree', function(){
var tree = layui.tree;

//渲染
var inst1 = tree.render({
elem: '#test1' //绑定元素
,data: [{
title: '江西' //一级菜单
,children: [{
title: '南昌' //二级菜单
,children: [{
title: '高新区' //三级菜单
//…… //以此类推,可无限层级
}]
}]
},{
title: '陕西' //一级菜单
,children: [{
title: '西安' //二级菜单
}]
}]
});
});
</script>
</body>
</html>

我们要做的是一个连接数据库的树形渲染(?ω?)?

接下来就用我正在做的项目为你们讲解:

二.首先创建一个关联的数据库:

这是我的项目里面的数据库,做树形其实不用四个表,三个表足够了,只是我的项目还有一些功能要实现,正常来说下面几个表就可以了:

三.数据库构建完成了,现在进入页面,在页面引入Layui的插件:

?

一个是css插件,一个是js插件。

四.插件引入完成,用一个div来接收渲染的树形:

五.在<script>里面调用tree组件:

//调用tree组件

layui.use( 'tree', function?() {

??????tree = layui.tree;//组件赋值给变量

??????$.post("selectPermissions", function?(data) {//请求数据

?????????????//渲染

?????????????tree.render({

??????????????????elem: '#InspectionItemTree', ?//绑定元素

??????????????????data: data,//返回的数据

??????????????????accordion: true,//手风琴模式

??????????????????onlyIconControl: true, //点击后不收缩

??????????????????click: function?(obj) {

????????????????????????console.log(obj.data); //得到当前点击的节点数据

???????????????????}

??????????????});

???????});

});

六.重点来了:下面就是控制器从数据库里面拿数据的代码:

?

代码如下:

?

#region?树形

????????public?ActionResult selectPermissions()

????????{

????????????//调用获取数据方法从0(上级id)开始

????????????List<Dictionary<string, object>> data = GetTree(0);

????????????return?Json(data, JsonRequestBehavior.AllowGet);



????????}

????????public?List<Dictionary<string, object>> GetTree(int?id)

????????{

????????????//创建一个字典集合,第一个

????????????List<Dictionary<string, Object>> jsonoListfon = new?List<Dictionary<string, object>>();

????????????//创建一个字

????????????Dictionary<string, object> jsontrue = new?Dictionary<string, object>();

????????????jsontrue.Add("title", "住院信息一览表");



????????????//查询病区表

????????????var?treeList = myModel.Ward.Select(m => m).ToList();

????????????//创建一个字典集合,第二个

????????????List<Dictionary<string, Object>> jsonoList = new?List<Dictionary<string, object>>();

????????????//循环遍历

????????????foreach?(Ward Wat in?treeList)

????????????{



????????????????//创造字典,将所需要的字段和值填进

????????????????Dictionary<string, object> json = new?Dictionary<string, object>();



????????????????json.Add("title", Wat.WardCode + ?"?"+ "("+ Wat.WardName + ")");//标题 病区名称

????????????????json.Add("id", Wat.WardID);//Id



????????????????var?ade = (from?tbAdmissionInformationSheet in?myModel.AdmissionInformationSheet

???????????????????????????join?tbBedCope in?myModel.BedCope on?tbAdmissionInformationSheet.BedCopeID equals?tbBedCope.BedCopeID

???????????????????????????where?tbBedCope.WardID == Wat.WardID

???????????????????????????select?tbAdmissionInformationSheet).ToList();



????????????????//创建一个字典集合,第三个

????????????????List<Dictionary<string, object>> jsonListDe = new?List<Dictionary<string, object>>();



????????????????foreach?(AdmissionInformationSheet ed in?ade)

????????????????{

????????????????????try

????????????????????{

????????????????????????var?Live = (from?tbAdmissionInformationSheet in?myModel.AdmissionInformationSheet

????????????????????????????????????join?tbSickInformation in?myModel.SickInformation on?tbAdmissionInformationSheet.SickInformationID equals?tbSickInformation.SickInformationID

????????????????????????????????????where?tbSickInformation.SickInformationID == ed.SickInformationID

????????????????????????????????????select?tbSickInformation).Single();



????????????????????????var?Ben = (from?tbBedCope in?myModel.BedCope

???????????????????????????????????where?tbBedCope.BedCopeID == ed.BedCopeID

???????????????????????????????????select?tbBedCope).Single();



????????????????????????//创造字典,将所需要的字段和值填进

????????????????????????Dictionary<string, object> jsonde = new?Dictionary<string, object>();

????????????????????????jsonde.Add("title", Live.PatientName + "?("?+ Ben.BedCopeNo + ")?"?+ ?Live.AdmissionNumber); //病人名称

????????????????????????jsonde.Add("id", Live.SickInformationID);

????????????????????????jsonListDe.Add(jsonde);//添加到第三个字典集合

????????????????????}

????????????????????catch?(Exception)

????????????????????{

????????????????????????//创造字典,将所需要的字段和值填进

????????????????????????Dictionary<string, object> jsonde = new?Dictionary<string, object>();

????????????????????????jsonde.Add("title", "无数据");

????????????????????????jsonListDe.Add(jsonde);//添加到第三个字典集合

????????????????????}

????????????????}

????????????????//把第三个字典集合放入第二个字典

????????????????json.Add("children", jsonListDe);

????????????????//将字典添加进第二个字典集合

????????????????jsonoList.Add(json);

????????????}

????????????jsontrue.Add("children", jsonoList);

????????????jsonoListfon.Add(jsontrue);

????????????return?jsonoListfon;//返回字典集合

????????}

????????#endregion

  JavaScript知识库 最新文章
ES6的相关知识点
react 函数式组件 & react其他一些总结
Vue基础超详细
前端JS也可以连点成线(Vue中运用 AntVG6)
Vue事件处理的基本使用
Vue后台项目的记录 (一)
前后端分离vue跨域,devServer配置proxy代理
TypeScript
初识vuex
vue项目安装包指令收集
上一篇文章      下一篇文章      查看所有文章
加:2022-05-24 18:03:56  更:2022-05-24 18:06:50 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 -2024/11/23 19:58:15-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码