在Net MVC中应用JsTree
先实现个基本用法
1 - 引入js和css
2 - html
<div id="list_left" class="col-md-2 pre-scrollable">
<div class="list_wrap">
<p class="lead">数据列表</p>
<div id="jstree">
</div>
</div>
</div>
3 - js
//初始化jstree控件
function init_jstree() {
$("#jstree").jstree({
"core": {
'data': {
'url': '/Home/GetTreeData',
'dataType': 'json',
success: function () {
//alert('ok');
}
},
'themes': {
'name': 'proton',
'responsive': true,
"dots": true,
"icons": true
} }
});
};
4 - cs
public JsonResult GetTreeData()
{
IBaseBll<TableInfo> tableBll = new BaseBll<TableInfo>();
var treeNodes = tableBll.QueryAll().Select(m => new
{
id = m.Id,
parent = m.ParentId.ToString() == "" ? "#" : m.ParentId.ToString(),
text = m.NameCh,
icon = m.TreeIcon
});
return Json(treeNodes, JsonRequestBehavior.AllowGet);
}
5 - 说明
- js中themes是选择的皮肤
- 后台代码中的treeNodes 是封装符合jstree中的,还有其他属性 详见http://www.cnblogs.com/wuhuacong/p/4759564.html
- 表设计 详见 http://www.cnblogs.com/jeffwongishandsome/archive/2010/10/26/1861633.html 评论里有更加方案
jstree的两个基本事件
1 - changed.jstree
$('#jstree').on("changed.jstree", function (e, data) {
//data.node是点击的节点信息,点击节点之后的逻辑都在这里处理
init_TableInfo(data.node.id);
var param = { TableId: data.node.id }
table.settings()[0].ajax.data = param;
table.ajax.reload();
$(".introWrap").css("display", "none");
});
2 - ready.jstree
$("#jstree").on("ready.jstree", function (event, data) {
data.instance.open_node(1); // 展开root节点
//// 隐藏根节点 http://stackoverflow.com/questions/10429876/how-to-hide-root-node-from-jstree
$("#1_anchor").css("visibility", "hidden");
$("li#1").css("position", "relative");
$("li#1").css("top", "-20px");
$("li#1").css("left", "-20px");
$(".jstree-last .jstree-icon").first().hide();
});
3 - 说明
- changed中可以获取到所点击节点的所有信息,可以做逻辑判断
- ready是所有节点加载完成后触发的,在这里我隐藏了根目录
- jstree官网 https://www.jstree.com/
- 借鉴 https://www.cnblogs.com/ibgo/p/4025036.html
在Net MVC中应用JsTree的更多相关文章
- .NetCore MVC中的路由(2)在路由中使用约束
p { margin-bottom: 0.25cm; direction: ltr; color: #000000; line-height: 120%; orphans: 2; widows: 2 ...
- .NetCore MVC中的路由(1)路由配置基础
.NetCore MVC中的路由(1)路由配置基础 0x00 路由在MVC中起到的作用 前段时间一直忙于别的事情,终于搞定了继续学习.NetCore.这次学习的主题是MVC中的路由.路由是所有MVC框 ...
- Asp.Net MVC中使用StreamReader读取“Post body”之应用场景。
场景:有三个市场(Global.China.USA),对前台传过来的数据有些验证需要细化到每个市场去完成. 所以就出现了基类(Global)和派生类(China.USA) 定义基类(Global)Pe ...
- 6.在MVC中使用泛型仓储模式和依赖注入实现增删查改
原文链接:http://www.c-sharpcorner.com/UploadFile/3d39b4/crud-operations-using-the-generic-repository-pat ...
- ASP.NET Core MVC 中的 [Controller] 和 [NonController]
前言 我们知道,在 MVC 应用程序中,有一部分约定的内容.其中关于 Controller 的约定是这样的. 每个 Controller 类的名字以 Controller 结尾,并且放置在 Contr ...
- ASP.NET MVC中利用AuthorizeAttribute实现访问身份是否合法以及Cookie过期问题的处理
话说来到上海已经快半年了,时光如白驹过隙,稍微不注意,时间就溜走了,倒是没有那么忙碌,闲暇之际来博客园还是比较多的,记得上次在逛博问的时候看到有同志在问MVC中Cookie过期后如何作相关处理,他在阐 ...
- 4.在MVC中使用仓储模式进行增删查改
原文链接:http://www.c-sharpcorner.com/UploadFile/3d39b4/crud-using-the-repository-pattern-in-mvc/ 系列目录: ...
- 5.在MVC中使用泛型仓储模式和工作单元来进行增删查改
原文链接:http://www.c-sharpcorner.com/UploadFile/3d39b4/crud-operations-using-the-generic-repository-pat ...
- 2.ASP.NET MVC 中使用Crystal Report水晶报表
上一篇,介绍了怎么导出Excel文件,这篇文章介绍在ASP.NET MVC中使用水晶报表. 项目源码下载:https://github.com/caofangsheng93/CrystalReport ...
随机推荐
- Docke--Dockerfile实践
Dockerfile 实践 nginx镜像构建 先查看下本地的镜像,选取官网的centos作为base image: [root@server ~]# docker images REPOSITORY ...
- opencv+codeblocks +anaconda
study from : https://www.jianshu.com/p/c16b7c870356 #include <cstdio> #include <cstdlib> ...
- Vue(四)组件
组件的复用 这里的工程和上一节的一样 先建立一个组件 MyButton.vue <template> <button @click="count++">Yo ...
- idea代码出现Usage of API documented as @since 1.8+ less... (Ctrl+F1)
问题: Usage of API documented as @since 1.8+ less... (Ctrl+F1) This inspection finds all usages of met ...
- Neo4j使用
一.删除图 在开发过程中,很多时候需要快(简)速(单)清(粗)除(暴)Neo4j中存在的海量数据节点和关系数据 在这种情况下,delete和detach从性能上都已力不从心.Neo4j官方推荐清库方法 ...
- Springboot-async(异步)初识
通过@Async注解实现一个简单的异步任务处理 首先,假设一个全自动化的工厂车间每天需要开启四台互不影响的机器开关来完成生产量,于是车间主任A委派“同步甲”和“异步乙”轮 流完成每天打开机器开关的任务 ...
- 适用于单片机的数据加密算法:xxtea
转:https://www.cnblogs.com/LittleTiger/p/4384741.html 各位大侠在做数据传输时,有没有考虑过把数据加密起来进行传输,若在串口或者无线中把所要传的数据加 ...
- ConcurrentHashMap扩容
然后,说说精华的部分. Cmap 支持并发扩容,实现方式是,将表拆分,让每个线程处理自己的区间.如下图: 假设总长度是 64 ,每个线程可以分到 16 个桶,各自处理,不会互相影响. 而每个线 ...
- Docker安装rabbitmq
前面的文章中我们的docker已经安装好了,我的最终目的是用docker来安装rabbitmq,所以本文我记录一下我用docker安装rabbitmq的过程: 1.下载镜像(下载management的 ...
- JS 获取本月第一天零点时间戳并转化成yy-mm-dd
JS 获取本月第一天零点时间戳并转化成yy-mm-dd 格式 <!DOCTYPE html> <html> <head> <meta charset=&quo ...