效果图:

先引用,顺序很重要

<script src="~/Content/bootstrap-table/bootstrap-table.min.js"></script>
<link href="~/Content/bootstrap-table/extensions/tree-table/jquery.treetable.css" rel="stylesheet" />
<script src="~/Content/bootstrap-table/extensions/tree-table/jquery.treetable.js"></script>
<link href="~/Content/bootstrap-table/extensions/tree-table/bootstrap-table-tree-table.css" rel="stylesheet" />
<script src="~/Content/bootstrap-table/extensions/tree-table/bootstrap-table-tree-table.js"></script>
<script type="text/javascript">
$(document).ready(function () {
$("#dgvInfo").bootstrapTable({
method: "GET",
url: "@Url.Action("TreeJson")",
contentType: "application/x-www-form-urlencoded",
datatype: 'json',
undefinedText: '',
striped: false,//隔行 渐变色
classes: "table table-hover",
clickToSelect: true,
queryParams: function (params) {
return {
menu_Name: $.trim($("#menu_Name").val()),
userName: $.trim($("#userName").val())
}
},
onClickRow: function (row, dom, field) {
$("#dgvInfo").bootstrapTable('uncheckAll');
//$("#dgvInfo").bootstrapTable("checkBy", { field: "gid", values: [dom.data('index')] });
}
}); //表格 - 操作 - 事件
window.actionEvents = {
'click #update-selected': function (e, value, row, index) {
SetChildInsurMsg('修改菜单', row)
},
'click #delete-selected': function (e, value, row, index) {
$.ajax({
url: '@Url.Action("DeleteMeun")',
type: 'post',
dataType: 'json',
data: row,
success: function (data) {
console.log(data.message);
searchData();
},
error: function () {
layer.alert('发生错误', {
skin: 'layui-layer-molv',
closeBtn: 0
});
}
});
}
};
}); function funcNmStyle(value, row, index) {
return { css: { "white-space": "nowrap" } };
} function funcNmFormatter(value, row) {
return ' <i class="' + row.menu_Icon + '">' + value+'</i>';
//<a href="@Url.Action("Update")?FunctionID=' + row.gid + '">' + value + '</a>
} function Operations(value, row, index) {
var str = '<button type="button" id="update-selected" class="btn btn-primary btn-sm"><i class="fa fa-edit"></i>修改</button>&nbsp;&nbsp;<button type="button" id="delete-selected" class="btn btn-danger btn-sm"><i class="fa fa-trash-o"></i>删除</button>';
return str;
} function IsPermissionFormatter(value, row) {
var str = '<input type=checkbox class = "disabled" ' + ((row.menu_IsShow==1) ? 'checked' : '') + ' disabled></input>';
return str;
} function searchData() {
$("#dgvInfo").bootstrapTable('refresh', {
url: '@Url.Action("TreeJson")'
});
} function SetChildInsurMsg(title, rows) {
if (rows == null) {
var selectrow = $("#dgvInfo").bootstrapTable('getSelections')[0];
if (selectrow == null) {
alert("选择父菜单");
return;
}
} layer.open({
type: 2, //因为layer弹出层需要一个页面,所以是iframe弹出层,因此type: 2。
title: title,
shadeClose: true,
shade: 0.4,
area: ['60%', '60%'],
content: '@Url.Action("Info")',
btn: ['确定', '关闭'],
success: function (layero, index) {
if (rows != null) {
var body = layer.getChildFrame('body', index); //巧妙的地方在这里哦,获取layer打开页面的数据
body.contents().find("#gid").val(rows.gid);
body.contents().find("#menu_Num").val(rows.menu_Num);
body.contents().find("#menu_Name").val(rows.menu_Name);
body.contents().find("#menu_Url").val(rows.menu_Url);
body.contents().find("#menu_Icon").val(rows.menu_Icon);
body.contents().find("#menu_Iconi").addClass(rows.menu_Icon);
body.contents().find("#menu_IsShow").val(rows.menu_IsShow);
body.contents().find("#menu_ParentID").val(rows.menu_ParentID);
body.contents().find("#menu_ParentName").val(rows.menu_ParentName);
GetFunction(rows, body);
}
else {
var body = layer.getChildFrame('body', index); //巧妙的地方在这里哦
body.contents().find("#menu_ParentID").val(selectrow.gid);
body.contents().find("#menu_ParentName").val(selectrow.menu_Name);
}
},
yes: function (index) {
var res = window["layui-layer-iframe" + index].callbackdata();
var funs = window["layui-layer-iframe" + index].GetFunctions();
var obj = JSON.parse(res);
var functions = JSON.parse(funs);
if (obj.menu_Name.length > 0) {
if (rows != null) {
updatemenu(obj, functions, index)
} else {
addmenu(obj, functions, index);
}
}
else {
layer.alert('请填写必输项。', {
skin: 'layui-layer-molv',
closeBtn: 0
});
}
},
cancel: function () {
//右上角关闭回调
}
});
} //获取功能
function GetFunction(row, body) {
$.ajax({
url: '@Url.Action("GetMenuFunction")',
type: 'get',
dataType: 'json',
data: {
mid: row.gid
},
success: function (data) {
for (var i = 0; i < data.length; i++) {
body.contents().find("input[value=" + data[i].menuFunction_FunctionID + "]").attr("checked", true)
//.iCheck('check');
}
},
error: function () {
alert("发生错误!");
}
});
}; function addmenu(data, functions, index) {
$.ajax({
url: '@Url.Action("AddMenu")',
type: 'post',
dataType: 'json',
data: {
model: data,
functions: functions
},
success: function (data) {
if (data.type == 1) {
layer.close(index);
searchData();
} else {
alert(data.message);
}
},
error: function () {
alert("发生错误!");
}
});
}; function updatemenu(data, functions, index) {
$.ajax({
url: '@Url.Action("UpdateMenu")',
type: 'post',
dataType: 'json',
data: {
model: data,
functions: functions
},
success: function (data) {
if (data.type == 1) {
layer.close(index);
searchData();
} else {
alert(data.message);
}
},
error: function () {
alert("发生错误!");
}
});
};
</script>

bootstrap的tree使用的更多相关文章

  1. 多层json的构造,取值,还有使用bootstrap的tree view在前端展示的相关问题

    bootstrap-tree view是一款非常好用的插件,它可以添加任意多层节点,效果如下所示: 使用之前需要在HTML页面添加依赖文件: <link href="bootstrap ...

  2. bootstrap的tree控件

    地址:http://runjs.cn/detail/xtte94ls http://runjs.cn/code/xtte94ls

  3. 10+ 最流行的 jQuery Tree 菜单插件

    jstree – jQuery Tree Plugin With HTML & JSON Data jstree is a lightweight and flexible jQuery pl ...

  4. Mega的简单使用

    Table of Contents 1 Mega画树的简单应用 2 fas格式文件的准备 3 用生成的.meg画树 4 生出树的处理 4.1 修改内容,添加标注 4.2 导出 4.3 后面随着学习的进 ...

  5. Flsk-Bootstrap-2

    目录 Flsk-Bootstrap-2 结构 解压Bootstrap 制作基础模板 视图函数 初始文件 启动文件 浏览器 Flsk-Bootstrap-2 参考:Flask 项目中使用 bootstr ...

  6. 【英文文档】 Installing Go from source Go语言官方编译指南 2019.02.27

    Introduction Go is an open source project, distributed under a BSD-style license. This document expl ...

  7. Bootstrap树控件(Tree控件组件)使用经验分享

    前言:很多时候我们在项目中需要用到树,有些树仅仅是展示层级关系,有些树是为了展示和编辑层级关系,还有些树是为了选中项然后其他地方调用选中项.不管怎么样,树控件都是很多项目里面不可或缺的组件之一.今天, ...

  8. 基于bootstrap样式的tree,

    <!doctype html><html lang="zh"><head> <meta charset="UTF-8" ...

  9. BootstrapQ 包Bootstrap tree,dialog等待

    官方网站:http://uikoo9.com/bootstrapQ why 事实上bootstrap已经非常好了,唯一的软肋就是js方面有些薄弱,对照easyui就知道了. 能够非常明显的知道boot ...

随机推荐

  1. android studio: 快捷键生成getter/setter方法时自动加m的问题

    平时使用Android Studio 在写实体类的时候,习惯给实体类的成员变量前面加上一个"m" 修饰符表示这是一个成员变量,这也是搞java的一种约定俗成的写法,本来这是没有问题 ...

  2. SSIM (Structural SIMilarity) 结构相似性

    公式基于样本x和 y 之间的三个比较衡量:亮度 (luminance).对比度 (contrast) 和结构 (structure). 每次计算的时候都从图片上取一个 N*N的窗口,然后不断滑动窗口进 ...

  3. 算法习题---5.12城市正视图<离散化应用>(Uva221)*****

    一:题目 给定n坐房子的西南角坐标x, y.还有宽度w,长度d(其实没用),高度h.问从南面看过去能看到几座房子. 城市俯视图和主视图 注意: 输出主视图中能够看到的所有建筑物按照左下角x坐标从小到大 ...

  4. Linux记录-SVN+Jenkins+jdk+maven自动化集成部署

    1.svn部署 yum -y install subversion svnserve --version 查看版本 mkdir -p /usr/app/svn svnadmin create /usr ...

  5. 利用 Postman 中 Tests 断言校验返回结果

    前言 Postman目前是一款很火的接口测试工具,它有着非常强大结果判断能力.为什么说强大呢,因为Postman有自带的校验脚本,根本不需要我们去学习JS脚本语言,对于代码能力为0的各位测试小伙伴来说 ...

  6. 深入理解ElasticSearch(PDF版 内含目录)

    深入理解ElasticSearch 介绍: 本书涵盖了Elasticsearch的许多中高级功能,并介绍了缓存.ApacheLucene库以及监控等模块的内部运作机制.其中,还涉及一些实用案例,比如配 ...

  7. 【Leetcode_easy】1029. Two City Scheduling

    problem 1029. Two City Scheduling 参考 1. Leetcode_easy_1029. Two City Scheduling; 完

  8. 【linux学习笔记四】文件搜索命令

    一 文件搜索 locate //在后台数据库中按文件名搜索 搜索速度更快 locate 文件名 //locate命令所搜索的后台数据库 /var/lib/mlocate //更新数据库 updated ...

  9. web端自动化——Selenium3+python自动化(3.7版本)-火狐62版本环境搭建

    前言 目前selenium版本已经升级到3.0了,网上的大部分教程是基于2.0写的,所以在学习前先要弄清楚版本号,这点非常重要.本系列依然以selenium3为基础. 一.selenium简介 Sel ...

  10. VSIX 插件

    https://blog.csdn.net/lynchee/article/details/83065608