jsTree动态加载数据
Views代码
@{
Layout = null;
}
<!DOCTYPE html>
<html>
<head>
<meta name="viewport" content="width=device-width" />
<title>Index</title>
<script src="~/content/js/plugins/jsTree/jstree.min.js"></script>
</head>
<body>
<div id="using_json"></div>
<script>
$(document).ready(function () {
@{
var a = new HtmlString(ViewBag.Region);//将动态数据转换成HTMLstring格式
}
$("#using_json").jstree(@a);//jsTree绑定数据
});
</script>
</body>
</html>
Controller代码
public ActionResult Index()
{
RegionModels list = new RegionModels();
list.region = service.GetRegion();//查询区域数据
list.dormcategory = service.GetDormCategory();//获取宿舍类型
RegionModel region = service.GetSingleRegion("");
ViewBag.Region = GetRegionJson(region.Cid, list.region);
return View(list);
}
/// <summary>
/// 返回jsTree的最外层值
/// </summary>
/// <param name="parentid">父级Cid</param>
/// <param name="data">数据</param>
/// <returns></returns>
public string GetRegionJson(string parentid, List<RegionModel> data)
{
string icon = GetIcon();
string a = "{\"core\": {\"themes\": {\"theme\": \"classic\",\"dots\": true},\"data\":[{\"text\":\"区域\",\"icon\": \""+icon+"\",\"id\":\"" + parentid + ",0\",\"state\": {\"opened\": true },\"children\":[";
StringBuilder sb = new StringBuilder(a);
RegionList(parentid, data, sb);//添加子集数据
sb.Append("]}]}}");
return sb.ToString();
}
/// <summary>
/// 添加jsTree子集数据
/// </summary>
/// <param name="parentid"></param>
/// <param name="list"></param>
/// <param name="sb"></param>
public void RegionList(string parentid, List<RegionModel> list, StringBuilder sb)
{
IEnumerable<RegionModel> temp = list.Where(n => n.ParentCid.Trim() == parentid).OrderBy(r => r.Name);
foreach (var item in temp)
{
string open = item.Level == ? "true" : "false";
string icon = GetIcon(item.Level);
string lastComma = "";
if (item != temp.Last())
lastComma = ",";
List<RegionModel> children = list.Where(n => n.ParentCid.Trim() == item.Cid).ToList();
if (children.Count == )
{
sb.Append($" {{ \"text\": \"{item.Name}\",\"icon\": \"{icon}\",\"id\":\"{ item.Cid.ToString() + "," + item.Level.ToString()}\",\"state\": {{\"opened\": {open} }},}}{lastComma}");
}
else
{
sb.Append($" {{\"text\": \"{item.Name}\",\"icon\": \"{icon}\",\"id\":\"{ item.Cid.ToString() + "," + item.Level.ToString()}\",\"state\": {{\"opened\": {open} }},");
sb.Append("\"children\": [");
RegionList(item.Cid, list, sb);
sb.Append($"]}}{lastComma}");
}
}
}
结果

jsTree动态加载数据的更多相关文章
- AppCan学习笔记----关闭页面listview动态加载数据
AppCan页面关闭 AppCan 的页面是由两个HTML组成,如果要完全关闭的话需要在主HTML eg.index.html中关闭,关闭方法:appcan.window.close(-1); 管道 ...
- [JS前端开发] js/jquery控制页面动态加载数据 滑动滚动条自动加载事件
页面滚动动态加载数据,页面下拉自动加载内容 相信很多人都见过瀑布流图片布局,那些图片是动态加载出来的,效果很好,对服务器的压力相对来说也小了很多 有手机的相信都见过这样的效果:进入qq空间,向下拉动空 ...
- 微信小程序(五) 利用模板动态加载数据
利用模板动态加载数据,其实是对上一节静态数据替换成动态数据:
- mui 动态加载数据出现的问题处理 (silder轮播组件 indexedList索引列表 下拉刷新不能继续加载数据)
mui-slider 问题:动态给mui的图片轮播添加图片,轮播不滚动. 解决:最后把滚动轮播图片的mui(".mui-slider").slider({interval: 300 ...
- ASP.NET MVC动态加载数据
ASP.NET MVC动态加载数据,一般的做法是使用$.each方法来循环产生tabel: 你可以在html时先写下非动态的部分: Source Code 上图中,有一行代码: <tbody ...
- js实现滚动条来动态加载数据
主要angular2+es6 data:Array<any> //展示的数据 allData:Array<any> //全部的数据 size:number = 10 //每次动 ...
- js/jquery控制页面动态加载数据 滑动滚动条自动加载事件--转他人的
js/jquery控制页面动态加载数据 滑动滚动条自动加载事件--转他人的 相信很多人都见过瀑布流图片布局,那些图片是动态加载出来的,效果很好,对服务器的压力相对来说也小了很多 有手机的相信都见过这样 ...
- js动态加载数据并合并单元格
js动态加载数据合并单元格, 代码如下所示,可复制直接运行: <!DOCTYPE HTML> <html lang="en-US"> <head> ...
- 爬虫--selenuim和phantonJs处理网页动态加载数据的爬取
1.谷歌浏览器的使用 下载谷歌浏览器 安装谷歌访问助手 终于用上谷歌浏览器了.....激动 问题:处理页面动态加载数据的爬取 -1.selenium -2.phantomJs 1.selenium 二 ...
随机推荐
- javascript 体验倒计时:距离国庆还有多长时间
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8&quo ...
- zabbix微信预警出现的问题
系统环境:centos7.3 zabbix_server: 3.0.3 3.0.6 问题描述 zabbix预警突然不能发送微信,需要修复 排查步骤 1. 检查微信企业平台应用的key是否过期,结果没过 ...
- vue项目首次加载过慢
vue项目优化 浅谈 Vue 项目优化 关于vue在app首次加载缓慢的解决办法 nginx开启缓存 在http部分加入 #要想开启nginx的缓存功能,需要添加此处的两行内容! #设置Web缓存区名 ...
- I2C和SPI总线对比
1 iic总线不是全双工,2根线SCL SDA.spi总线实现全双工,4根线SCK CS MOSI MISO 2 iic总线是多主机总线,通过SDA上的地址信息来锁定从设备.spi总线只有一个主设备, ...
- Java基础编程题——打印九九乘法表
package com.yangzl.basic; /** * 九九乘法表 * @author Administrator * */ public class Nine_Nine_Multiplica ...
- Asp.net MVC Session过期异常的处理
一.使用MVC中的Filter来对Session进行验证 (1)方法1: public class MyAuthorizeAttribute : FilterAttribute, IAuthoriza ...
- luogu P4074 [WC2013]糖果公园
传送门 这种题显然要用树上莫队 何为树上莫队?就是在树上跑莫队算法就是先把树分块,然后把询问离线,按照左端点所在块为第一关键字,右端点所在块为第二关键字,时间戳(如果有修改操作)为第三关键字排序,然后 ...
- django(二)中间件与面向切面编程
一.中间件概念 django 自带函数可以在几个环节调节收到请求.处理请求.处理异常.以及发送请求. 看这里给的链接好了,这是一个大佬的讲django中间件的博客,非常清楚:https://www.c ...
- [转]python 装饰器
以前你有没有这样一段经历:很久之前你写过一个函数,现在你突然有了个想法就是你想看看,以前那个函数在你数据集上的运行时间是多少,这时候你可以修改之前代码为它加上计时的功能,但是这样的话是不是还要大体读读 ...
- Freemarker list 的简单使用
freemarker list (长度,遍历,下标,嵌套,排序) 1. freemarker获取list的size : Java ArrayList<String> list = new ...