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 二 ...
随机推荐
- Python复习笔记(三)函数进阶
问题 1:在函数内部,针对参数使用 赋值语句,会不会影响调用函数时传递的 实参变量? —— 不会! 无论传递的参数是 可变 还是 不可变 只要 针对参数 使用 赋值语句,会在 函数内部 修改 局部变量 ...
- WebSocket实战之——JavaScript例子
一.详细代码案例 详细解读一个简单html5 WebSocket的Js实例教程,附带完整的javascript websocket实例源码,以及实例代码效果演示页面,并对本实例的核心代码进行了深入解读 ...
- 获取客户端的请求IP地址
获取客户端的请求IP地址 package com.microClass.util; import javax.servlet.http.HttpServletRequest; import java. ...
- python自带的调试器
python是自带调试器的. 比如你写了一个python程序,名叫test.py. 你想调试一下这个程序,你可以执行 python -m pdb test.py,就会进入test.py的调试. 想查看 ...
- geeksforgeeks-Array-Rotate and delete
As usual Babul is again back with his problem and now with numbers. He thought of an array of number ...
- SQL多表联合查询
通过连接运算符可以实现多个表查询.连接是关系数据库模型的主要特点,也是它区别于其它类型数据库管理系统的一个标志. 在关系数 据库管理系统中,表建立时各数据之间的关系不必确定,常把一个实体的所有信息存放 ...
- android studio 清空缓存插件
http://www.jcodecraeer.com/a/anzhuokaifa/androidkaifa/2016/0308/4036.html 一个提高开发效率的ADB插件:ADB IDEA 泡在 ...
- SpringBoot使用Redis缓存
(1).添加依赖 <dependency> <groupId>org.springframework.boot</groupId> <artifactId&g ...
- ASP.NET MVC + EF 更新的几种方式(超赞)
1.常用 db.Entry(实体).State = EntityState.Modified;db.SaveChanges(); 2.指定更新 db.Configuration.ValidateOnS ...
- scp -r拷贝目录不会拷贝软连接
scp -r拷贝目录,不会拷贝 软连接的 解决方法: 使用rsync拷贝 参考:rsync本地及远程复制备份[原创] - paul_hch - 博客园 https://www.cnblogs.com/ ...