jsTree使用
引用: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使用的更多相关文章
- jsTree简单应用Demo
<!DOCTYPE html> <html> <head> <meta name="viewport" content="wid ...
- JSTREE 实现AJAX重载入时刷新所有节点树
$().ready(function() { var tree = $('#tree'); tree.jstree({ 'core': { data: null } }); $("#xr ...
- 【笔记】jstree插件的基本使用
官网地址:https://www.jstree.com/ json返回参数格式:推荐第二种方式 不需要在重新拼接返回格式 不刷新页面重新初始化 jstree时使用:$.jstree.destroy() ...
- 【JSTREE】 复选框默认选中【总结】
<%@ page language="java" import="java.util.*" pageEncoding="UTF-8"% ...
- JavaScript JsTree实例
var RightTree= function () { }; RightTree.prototype = { //初始化权限树 InitRightTree: function () { $.ajax ...
- JsTree实现简单的CRUD
现在需要将省市县区域这块搞成树状图的形状,由于项目使用的AngularJS+ABP+WebAPI各个模块之间数据传输形式是json格式,那么对于JsTree来说就方便很多了,只需要将json数据搞成我 ...
- 基于jstree的 对混乱的 命名系统进行归类的 计算机软件
本人现在就职于一家加拿大东部餐饮连锁公司的IT部门,公司旗下有4个品牌,280多家餐厅. 所有的餐厅都使用maitred 的pos软件来处理收银结账. 公司总部使用business object 对m ...
- 基于Metronic的Bootstrap开发框架经验总结(2)--列表分页处理和插件JSTree的使用
在上篇<基于Metronic的Bootstrap开发框架经验总结(1)-框架总览及菜单模块的处理>介绍了Bootstrap开发框架的一些基础性概括,包括总体界面效果,以及布局.菜单等内容, ...
- 利用jstree插件轻松构建树应用
最近完成了项目中的一个树状应用,第一次接触了jstree这个插件,总的来说它的官方文档还是比较详细的,但是在使用过程中还是出现了一些问题,下面我就来谈谈这款插件的使用和心得. 首先项目需要构建一棵树, ...
- jstree动态生成树
前篇文章简单介绍了静态生成树,这篇文章将通过后台把数据通过json形式传到前台,进行动态生成树. 本篇的程序所用框架为Spring MVC,可以很方便的通过controller层传json到前台. 前 ...
随机推荐
- 限制访问次数例子和Ajax的some
-- 限制访问次数作业解答 -- -- urls.py 里-- from django.conf.urls import url from django.contrib import admin fr ...
- Step by Step use OBD2 Scanner Guide
Learning to use a good automotive OBD2 code reader is one of the best ways you can continually inves ...
- 搭建Vue2+Vuex+Webpack+Pug(jade)+Stylus环境
一.开发环境配置 开始之前,假设你已经安装了最新版本的 node 和 npm. 全局安装 vue-cli 和 webpack : npm install vue-cli webpack -g 创建工 ...
- MMU工作原理(转)
源: MMU工作原理
- 在idea中不出现大波浪的设置
在idea中如果有重复代码时候,就会出现大波浪 ,然后,现在可以设置 Duplicated Code 的对号去掉就可以没有大波浪
- kafka数据可靠传输
再说复制Kafka 的复制机制和分区的多副本架构是Kafka 可靠性保证的核心.把消息写入多个副本可以使Kafka 在发生崩愤时仍能保证消息的持久性. Kafka 的主题被分为多个分区,分区是基本的数 ...
- android 颜色值参考,(有颜色图
) 2011-10-13 19:55:30| 分类: android | 标签:android颜色值|字号大中小 订阅 Android 常用RGB值以及中英文名称 颜 色 RGB值 英文名 中文名 ...
- Kali系列之hydra ssh密码爆破
环境 kali 192.168.137.131 靶机 192.168.137.133 语句 hydra -l root -P /home/chenglee/zidian/wordlist.TXT -t ...
- vue2.0之element table的使用
说明: 1.改变表头居中问题: 需要在el-table-column中添加 header-align="center" <el-table :data="t ...
- bzoj 4540 [HNOI 2016] 序列 - 莫队算法 - Sparse-Table - 单调栈
题目传送门 传送点I 传送点II 题目大意 给定一个长度为$n$的序列.询问区间$[l, r]$的所有不同的子序列的最小值的和. 这里的子序列是连续的.两个子序列不同当且仅当它们的左端点或右端点不同. ...