引用:jsTreede css 与Js

初始化jsTree:

//加载树
function initTree(treeData) {
$.jstree.destroy();
$('#treeDiv').jstree({ //创建JsTtree
'core': {
'data': treeData.allPer, //绑定JsTree数据(后台JSON数据传入,数据模型见下文)
"multiple": true //是否多选
},
"plugins": ["state", "types", "wholerow", "checkbox",], //配置信息(选择插件)
"checkbox": {
"keep_selected_style": false //是否默认选中
}
}); $("#treeDiv").on("ready.jstree", function (e, data) { //树创建完成事件(所有节点加载完毕)
data.instance.open_all(); //展开所有节点
$("#treeDiv").find("li").each(function () { //遍历生成的li标签
$("#treeDiv").jstree("uncheck_node", $(this)); //设置未选中
if (treeData.selPer.indexOf($(this).attr("id")) != -1) { // 如果 id 匹配
$("#treeDiv").jstree("check_node", $(this)); //选中此节点
}
})
});
}

JSON数据模型:

public class TreeModel
{
public string Id { get; set; } public string Text { get; set; } public string Parent { get; set; }
} List<TreeModel> treeModels = new List<TreeModel>();
foreach (DataRow menu in menus.Rows)
{
treeModels.Add(new TreeModel()
{
Id = Convert.ToString(menu["id"]),
Text = Convert.ToString(menu["name"]),
Parent = string.IsNullOrEmpty(Convert.ToString(menu["parentId"])) ? "#" : Convert.ToString(menu["parentId"])
});
}
List<string> lstPermissId = new List<string>();
foreach(DataRow per in rolePermission.Rows)
{
lstPermissId.Add(Convert.ToString(per["permissionId"]));
} return Json(new{ allPer = treeModels, selPer = lstPermissId }); //前台js:

  var checkedRoot = $('#treeDiv').jstree().get_checked(true); //获取所有选中节点
  var roleId = $("#RoleId").val();
  var permissions = [];
  $.each(checkedRoot, function (i, item) {
    permissions.push({ "RoleId": roleId, "PermissionId": item.id });//重新封装传到后台
  })

jsTree使用的更多相关文章

  1. jsTree简单应用Demo

    <!DOCTYPE html> <html> <head> <meta name="viewport" content="wid ...

  2. JSTREE 实现AJAX重载入时刷新所有节点树

      $().ready(function() { var tree = $('#tree'); tree.jstree({ 'core': { data: null } }); $("#xr ...

  3. 【笔记】jstree插件的基本使用

    官网地址:https://www.jstree.com/ json返回参数格式:推荐第二种方式 不需要在重新拼接返回格式 不刷新页面重新初始化 jstree时使用:$.jstree.destroy() ...

  4. 【JSTREE】 复选框默认选中【总结】

    <%@ page language="java" import="java.util.*" pageEncoding="UTF-8"% ...

  5. JavaScript JsTree实例

    var RightTree= function () { }; RightTree.prototype = { //初始化权限树 InitRightTree: function () { $.ajax ...

  6. JsTree实现简单的CRUD

    现在需要将省市县区域这块搞成树状图的形状,由于项目使用的AngularJS+ABP+WebAPI各个模块之间数据传输形式是json格式,那么对于JsTree来说就方便很多了,只需要将json数据搞成我 ...

  7. 基于jstree的 对混乱的 命名系统进行归类的 计算机软件

    本人现在就职于一家加拿大东部餐饮连锁公司的IT部门,公司旗下有4个品牌,280多家餐厅. 所有的餐厅都使用maitred 的pos软件来处理收银结账. 公司总部使用business object 对m ...

  8. 基于Metronic的Bootstrap开发框架经验总结(2)--列表分页处理和插件JSTree的使用

    在上篇<基于Metronic的Bootstrap开发框架经验总结(1)-框架总览及菜单模块的处理>介绍了Bootstrap开发框架的一些基础性概括,包括总体界面效果,以及布局.菜单等内容, ...

  9. 利用jstree插件轻松构建树应用

    最近完成了项目中的一个树状应用,第一次接触了jstree这个插件,总的来说它的官方文档还是比较详细的,但是在使用过程中还是出现了一些问题,下面我就来谈谈这款插件的使用和心得. 首先项目需要构建一棵树, ...

  10. jstree动态生成树

    前篇文章简单介绍了静态生成树,这篇文章将通过后台把数据通过json形式传到前台,进行动态生成树. 本篇的程序所用框架为Spring MVC,可以很方便的通过controller层传json到前台. 前 ...

随机推荐

  1. AtCoder Beginner Contest 083 (AB)

    A - Libra 题目链接:https://abc083.contest.atcoder.jp/tasks/abc083_a Time limit : 2sec / Memory limit : 2 ...

  2. JustOj 2040: 王胖子买零食 (贪心)

    题目描述 大豪哥有个好朋友叫王胖子,众所周知王胖子特别爱吃零食,比如各种不一样的糖果,辣条呀,可是王胖子每个月用在买零食上的钱不是固定的,但是因为王胖子特别爱吃零食,他希望把自己能花在买吃的钱全部用掉 ...

  3. 运行tomcat报Exception in thread "ContainerBackgroundProcessor[StandardEngine[Catalina]]"

    解决方法1:   手动设置MaxPermSize大小,如果是linux系统,修改TOMCAT_HOME/bin/catalina.sh,如果是windows系统,修改TOMCAT_HOME/bin/c ...

  4. composer 报错:Failed to decode response: zlib_decode(): data error 解决办法

    执行命令 composer require particle/validator 报错 Failed to decode response: zlib_decode(): data error 网上推 ...

  5. Java线程同步与锁

    一.synchronized synchronized锁什么?锁对象.可能锁对象包括: this, 临界资源对象,Class类对象. 1,同步方法 synchronized T methodName( ...

  6. mysql 5.7多源复制(用于生产库多主库合并到一个查询从库)

    目前我们使用的是主从+分库分表的系统架构,主库有N个分库,从库为多个slave做负载均衡,所以数据库端的架构是下面这样的: 因为差不多有一年半没有专门搞技术为主了,顺带回顾下. 这就涉及到多个主库数据 ...

  7. plsql developer 10注册码----亲测截止2017年5月6可用

    亲测截止2017年5月6可用 Product Code:4t46t6vydkvsxekkvf3fjnpzy5wbuhphqzserial Number:601769password:xs374ca

  8. docker 实践

    https://doc.yonyoucloud.com/doc/docker_practice/etcd/etcdctl.html 启动http restful API docker批量映射端口 怎么 ...

  9. linux检查系统CPU,内存,磁盘使用率

    #!/bin/bash CPU=`top -bn 1 -i -c | sed -n '3p' | awk -F ':' '{print$2}' | awk '{print$1}'` MEM=`free ...

  10. Linux 用 root 用户都无法删除的文件如何删除

    要查看隐藏文件用 ls -a 看文件有没有被锁定(i属性) [root@linux ~]# lsattr YourFile ---i---------- YourFile 去除i属性再删除 [root ...