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到前台. 前 ...
随机推荐
- Autel Maxisys MS908CV Description
The new Autel MaxiSys CV Heavy Duty Diagnostic is built on the powerful MaxiSys 908 platform and pro ...
- 每日linux命令学习-lsattr和chattr
lsattr和chattr命令 1. lsattr命令 作用: 显示文件属性 语法: lsattr [-adlRvV][files...] 参数: -a 显示所有文件和目录(包括隐藏文件)的属性. - ...
- MyEclipse配置默认自带的HTML/JSP代码格式化
MyEclipse自带默认的HTML/JSP代码格式化并不适合个人开发习惯,因此特意配置如下: 设置行宽为:720(直接加10倍) 使用tabs缩进,单位:1 缩进标签元素要求删除: a开头:a. b ...
- 控制层和ajax用法的详解
商城项目第二天复习的内容 package cn.tedu.store.entity; public class ResponseResult<T> { public static fina ...
- Python3 格式化字符串
Python3 格式化字符串 在Python 3.6之前,有两种将Python表达式嵌入到字符串文本中进行格式化的主要方法:%-formatting和str.format() 一.%-formatti ...
- java.util.concurrent.RejectedExecutionException: event executor terminated解决方法之一
INFO | jvm 1 | 2017/03/09 19:45:10 | java.util.concurrent.RejectedExecutionException: event executor ...
- 教你用Visual Studio Code做PHP开发 - 微软官方工具,IDE中的黑马
转载于:http://bbs.wfun.com/thread-902655-1-1.html,仅供自己备忘 本文为我在智机网的原创 ] 关于Visual Studio Code,可能有的开发者很陌生 ...
- vfio
VFIO简介 Documentation/vfio.txt 还是不理解IOMMU.北桥.PCI的MMIO和ioremap file:///C:/Users/shaohefe/Downloads/vt- ...
- nginx按日期分割日志
#!/bin/bash # Program:chenglee # Auto cut nginx log script. LOGS_PATH="/usr/local/nginx1.13/log ...
- 2018年11月10日 input,print,pass 用法,条件语句+字符串
name=input('请输入用户名')#永远等待用户输入 password=input('请输入密码') print(name) print(password) 变量定义的规则: 变量名只能是 字母 ...