jsTree是一个 基于jQuery的Tree控件。支持XML,JSON,Html三种数据源。提供创建,重命名,移动,删除,拖"放节点操作。可以自己自定义创建,删 除,嵌套,重命名,选择节点的规则。在这些操作上可以添加多种监听事件。

zTree 是一个依靠 jQuery 实现的多功能 “树插件”。开源免费的软件,优异的性能、灵活的配置、多种功能的组合是 zTree 最大优点。

jstree下载地址:https://www.jstree.com/

zTree下载地址:http://www.ztree.me/v3/main.php#_zTreeInfo

效果图

以上是jstree的效果图,zTree的使用方法戳这里:http://www.cnblogs.com/cube/p/3724840.html

以下是jstree在MVC使用的方法

1.在项目中引入

<link rel="stylesheet" type="text/css" href="~/assets/global/plugins/jstree/dist/themes/default/style.min.css" />
 <script src="~/assets/global/plugins/jstree/dist/jstree.min.js"></script>
@{
ViewBag.Title = "ModuleDataTable";
Layout = "~/Areas/Admin/Views/Shared/MasterPage.cshtml";
}
@section header{
<link rel="stylesheet" type="text/css" href="~/assets/global/plugins/jstree/dist/themes/default/style.min.css" />
<link rel="stylesheet" type="text/css" href="~/assets/global/plugins/datatables/plugins/bootstrap/dataTables.bootstrap.css" />
}
<div class="page-bar">
<ul class="page-breadcrumb">
<li>
<i class="fa fa-home"></i>
<a href="index.html">系统设置</a>
<i class="fa fa-angle-right"></i>
</li>
<li>
<a href="#">模块管理</a>
</li>
</ul>
</div>
<h3 class="page-title"></h3>
<div class="row">
<div class="col-md-3">
<div class="portlet red-pink box">
<div class="portlet-title">
<div class="caption">
<i class="fa fa-cogs"></i>模块名称
</div>
<div class="tools">
<a href="#portlet-config" data-toggle="modal" class="config">
</a>
</div>
</div>
<div class="portlet-body">
<div id="module-tree" class="tree-demo">
</div>
</div>
</div>
</div>
<div class="portlet box red-pink col-md-9">
<div class="portlet-title">
<div class="caption">
<i class="fa fa-cogs"></i>模块信息
</div>
<div class="tools">
<a href="javascript:;" class="collapse">
</a>
<a href="#portlet-config" data-toggle="modal" class="config">
</a>
<a href="javascript:;" class="reload">
</a>
<a href="javascript:;" class="remove">
</a>
</div>
</div> <div class="portlet-body" id="_ModuleDataTable">
</div>
</div>
</div> @section footer{
<script src="~/assets/global/plugins/jstree/dist/jstree.min.js"></script>
<script src="~/Assets/content/module-tree.js"></script>
<script src="~/assets/global/plugins/datatables/media/js/jquery.dataTables.min.js"></script>
<script src="~/assets/global/plugins/datatables/plugins/bootstrap/dataTables.bootstrap.js"></script>
<script>
$("#module-tree").jstree({
"core": {
"themes": {
"responsive": false
},
// so that create works
"check_callback": false,
'data': {
'url': function (node) {
return '/admin/module/treedataapi';
},
'data': function (node) {
return { 'parent': node.id };
}
}
},
"types": {
"default": {
"icon": "fa fa-folder icon-state-warning icon-lg"
},
"file": {
"icon": "fa fa-file icon-state-warning icon-lg"
}
},
"state": { "key": "demo3" },
"plugins": ["dnd", "state", "types"]
}); $("#module-tree").bind("select_node.jstree", function (e, data) {
var i, j, r = [];
for (i = , j = data.selected.length; i < j; i++) {
r.push(data.instance.get_node(data.selected[i]).id);
var url = "/admin/module/ModuleDataTable?parent=" + r;
//加载_ModuleDataTable部分视图
$("#_ModuleDataTable").load(url);
}
})
</script> }

2.声明在页面显示jstree的位置

  <div id="module-tree" class="tree-demo">
</div>

3.准备jstree所需要的数据源,先读取父级数据,然后点击触发,异步加载子级数据

public JsonResult TreeDataAPI(string parent)
{
if (parent == "#")
parent = "";
List<SAS.Model.BPMS_SysMenu> list = new List<SAS.Model.BPMS_SysMenu>(); StringBuilder strWhere = new StringBuilder(); list = bll.GetModelList(strWhere.ToString());
List<Dictionary<string, object>> listDict = new List<Dictionary<string, object>>(); foreach (var item in list)
{
if (item.ParentId.Equals(parent))
{
Dictionary<string, object> dict = new Dictionary<string, object>();
dict.Add("id", item.MenuId);
dict.Add("icon", item.Img);
dict.Add("text", item.FullName); if (list.Where(d => d.ParentId.Equals(item.MenuId)).Count() > )
dict.Add("children", true);
else
dict.Add("children", false);
listDict.Add(dict);
}
}
return Json(listDict, JsonRequestBehavior.AllowGet);
}

4.通过地址访问可以获取到以下信息

URL:http://localhost:8081/admin/module/treedataapi?parent=0

5.最后我们需要绑定数据

 $("#module-tree").jstree({
"core": {
"themes": {
"responsive": false
},
// so that create works
"check_callback": false,
'data': {
'url': function (node) {
return '/admin/module/treedataapi';
},
'data': function (node) {
return { 'parent': node.id };
}
}
},
"types": {
"default": {
"icon": "fa fa-folder icon-state-warning icon-lg"
},
"file": {
"icon": "fa fa-file icon-state-warning icon-lg"
}
},
"state": { "key": "demo3" },
"plugins": ["dnd", "state", "types"]
});

PS.如果需要点击树,触发加载列表需要以下代码,详细见紫色代码

<script>
$("#module-tree").jstree({
"core": {
"themes": {
"responsive": false
},
// so that create works
"check_callback": false,
'data': {
'url': function (node) {
return '/admin/module/treedataapi';
},
'data': function (node) {
return { 'parent': node.id };
}
}
},
"types": {
"default": {
"icon": "fa fa-folder icon-state-warning icon-lg"
},
"file": {
"icon": "fa fa-file icon-state-warning icon-lg"
}
},
"state": { "key": "demo3" },
"plugins": ["dnd", "state", "types"]
}); $("#module-tree").bind("select_node.jstree", function (e, data) {
var i, j, r = [];
for (i = 0, j = data.selected.length; i < j; i++) {
r.push(data.instance.get_node(data.selected[i]).id);
var url = "/admin/module/ModuleDataTable?parent=" + r;
//加载_ModuleDataTable部分视图
$("#_ModuleDataTable").load(url);
}
})
</script>

.net zTree的使用方法戳这里:http://www.cnblogs.com/cube/p/3724840.html

ASP.NET MVC jQuery 树插件在项目中使用方法(一)的更多相关文章

  1. 记一次ASP.NET MVC性能优化(实际项目中)

    前言 在开发中为了紧赶项目进度而未去关注性能的问题,在项目逐渐稳定下来后发现性能令人感到有点忧伤,于是开始去关注这方面,本篇为记录在开发中遇到的问题并解决,不喜勿喷.注意:以下问题都是在移动端上出现, ...

  2. 【转】记一次ASP.NET MVC性能优化(实际项目中)

    前言 在开发中为了紧赶项目进度而未去关注性能的问题,在项目逐渐稳定下来后发现性能令人感到有点忧伤,于是开始去关注这方面,本篇为记录在开发中遇到的问题并解决,不喜勿喷.注意:以下问题都是在移动端上出现, ...

  3. ASP.NET MVC性能优化(实际项目中)

    前言 在开发中为了紧赶项目进度而未去关注性能的问题,在项目逐渐稳定下来后发现性能令人感到有点忧伤,于是开始去关注这方面,本篇为记录在开发中遇到的问题并解决,不喜勿喷.注意:以下问题都是在移动端上出现, ...

  4. asp.net mvc+jquery easyui开发实战教程之网站后台管理系统开发1-准备工作

    /****** Object: 新闻表 Script Date: 2017/9/2 星期六 15:11:12 ******/ SET ANSI_NULLS ON GO SET QUOTED_IDENT ...

  5. asp.net mvc+jquery easyui开发实战教程之网站后台管理系统开发4- 后台模板html页面创建

    上一篇教程<asp.net mvc+jquery easyui开发实战教程之网站后台管理系统开发3-登录模块开发>完成了本项目的登录模块,登录后就需要进入后台管理首页了,需要准备一个后台模 ...

  6. asp.net mvc+jquery easyui开发实战教程之网站后台管理系统开发2-Model层建立

    上篇(asp.net mvc+jquery easyui开发实战教程之网站后台管理系统开发1-准备工作)文章讲解了开发过程中的准备工作,主要创建了项目数据库及项目,本文主要讲解项目M层的实现,M层这里 ...

  7. zTree -- jQuery 树插件 使用方法与例子

    简介 zTree 是一个依靠 jQuery 实现的多功能 "树插件". 网址:http://www.ztree.me/v3/main.php#_zTreeInfo 上面的网址里有z ...

  8. 顶级jQuery树插件

    顶级jQuery树插件 顶级jQuery树插件 2013-03-05 17:20 139人阅读 评论(0) 收藏 举报 jsTree JsTree是一个基于jQuery的Tree控件.支持HTML.J ...

  9. zTree 优秀的jquery树插件

    zTree 优秀的jquery树插件,文档详细,渲染快 使用方法: 1.引用zTree的js和css文件 <link href="~/Content/zTree_v3/css/zTre ...

随机推荐

  1. (转)java位运算

    转自:http://aijuans.iteye.com/blog/1850655 Java 位运算(移位.位与.或.异或.非)   public class Test { public static ...

  2. java高精度hdu4043

    可以推出公式 f[n]=f[n-1]+f[n-1]*2*(n-1) f[1]=1; 数据量很大,最后又要进行gcd操作,java里竟然自带了一个gcd的函数,为了避免求大数取余和大数除法操作,还是用j ...

  3. MVC 多种 数据验证 post

    技术:c# .net  采用mvc框架,实现model的数据验证. 刚开始觉得数据验证很方便,可以判断非空.数据正确性,但是后来发现很多需要数据库的判定还是需要post请求做,但是就想mvc的数据验证 ...

  4. Java读取、创建Excel;验签,加密

    需要架包:poi相关jar,Md5.jar------------------------------------------------------------------------------- ...

  5. ORACLE的测试用户Scott

    Oracle数据库的测试用户Scott的密码为什么是Tiger? 1977年6月,Larry Ellison 与 Bob Miner 和 Ed Oates 在硅谷共同创办了一家名为软件开发实验室(So ...

  6. C# 矩阵乘法实现

    矩阵乘法是一种高效的算法可以把一些一维递推优化到log( n ),还可以求路径方案等,所以更是是一种应用性极强的算法.矩阵,是线性代数中的基本概念之一.一个m×n的矩阵就是m×n个数排成m行n列的一个 ...

  7. AsciiDoc Text based document generation

    AsciiDoc Text based document generation    AsciiDoc Home Page http://asciidoc.org/   AsciiDoc is a t ...

  8. Linux基础命令(一)

    一.开启Linux操作系统,要求以root用户登录GNOME图形界面,语言支持选择为汉语没有图形界面 二.使用快捷键切换到虚拟终端2,使用普通用户身份登录,查看系统提示符 Ctrl + Alt + F ...

  9. Django - 文件上传、Django组件 - 分页器(paginator)

    一.文件上传准备知识 - Content-Type 1.请求头 - Content-Type Content-Type指的是请求体的编码类型,常见的类型共有3种: 1)application/x-ww ...

  10. python数据类型一(重点是字符串的各种操作)

    一.python基本数据类型 1,int,整数,主要用来进行数学运算 2,bool,布尔类型,判断真假,True,False 3,str,字符串,可以保存少量数据并进行相应的操作(未来使用频率最高的一 ...