bootstrap的tree使用
效果图:
先引用,顺序很重要
<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> <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使用的更多相关文章
- 多层json的构造,取值,还有使用bootstrap的tree view在前端展示的相关问题
bootstrap-tree view是一款非常好用的插件,它可以添加任意多层节点,效果如下所示: 使用之前需要在HTML页面添加依赖文件: <link href="bootstrap ...
- bootstrap的tree控件
地址:http://runjs.cn/detail/xtte94ls http://runjs.cn/code/xtte94ls
- 10+ 最流行的 jQuery Tree 菜单插件
jstree – jQuery Tree Plugin With HTML & JSON Data jstree is a lightweight and flexible jQuery pl ...
- Mega的简单使用
Table of Contents 1 Mega画树的简单应用 2 fas格式文件的准备 3 用生成的.meg画树 4 生出树的处理 4.1 修改内容,添加标注 4.2 导出 4.3 后面随着学习的进 ...
- Flsk-Bootstrap-2
目录 Flsk-Bootstrap-2 结构 解压Bootstrap 制作基础模板 视图函数 初始文件 启动文件 浏览器 Flsk-Bootstrap-2 参考:Flask 项目中使用 bootstr ...
- 【英文文档】 Installing Go from source Go语言官方编译指南 2019.02.27
Introduction Go is an open source project, distributed under a BSD-style license. This document expl ...
- Bootstrap树控件(Tree控件组件)使用经验分享
前言:很多时候我们在项目中需要用到树,有些树仅仅是展示层级关系,有些树是为了展示和编辑层级关系,还有些树是为了选中项然后其他地方调用选中项.不管怎么样,树控件都是很多项目里面不可或缺的组件之一.今天, ...
- 基于bootstrap样式的tree,
<!doctype html><html lang="zh"><head> <meta charset="UTF-8" ...
- BootstrapQ 包Bootstrap tree,dialog等待
官方网站:http://uikoo9.com/bootstrapQ why 事实上bootstrap已经非常好了,唯一的软肋就是js方面有些薄弱,对照easyui就知道了. 能够非常明显的知道boot ...
随机推荐
- Javascript自定义事件功能与用法实例分析
原文地址:https://www.jb51.net/article/127776.htm 本文实例讲述了javascript自定义事件功能与用法.分享给大家供大家参考,具体如下: 概述 自定义事件很难 ...
- List和Array相互转换
List<String> list = new ArrayList<String>(); list.add("1"); list.add("2&q ...
- vector 移除元素
vector中移除“与某值相等”的第一个元素. std::vector<Elem> coll; ... //remove first element with value val std: ...
- 【Tomcat】Tomcat 基本使用(二)
上一章介绍了Tomcat原理[Tomcat]Tomcat 原理架构(一),本章介绍Tomcat的基本使用 Tomcat端口设置 tomcat端口设置,在tomcat的配置文件目录下的server.xm ...
- Qt编写气体安全管理系统3-用户模块
一.前言 从这篇开始逐个写具体的功能模块,用户模块主要有四个方面,用户登录.用户退出.用户管理.权限控制.这里都按照简单的常规做法来做,比如用户登录界面,就将用户名提供下拉框选择,然后输入密码,密码框 ...
- windows10 环境下的RabbitMQ安装步骤(图文)
第一步:下载并安装erlang 原因:RabbitMQ服务端代码是使用并发式语言Erlang编写的,安装Rabbit MQ的前提是安装Erlang. 下载地址:http://www.erlang.or ...
- Python 初级 5 判断再判断
复习: 1 三种数据类型: 整数:int, (1, 2, 200) 浮点数: float(2.0, 9.5, 100.38) 字符串: str("小明", "abc&qu ...
- python初级 1 内存和变量
一.回顾: 1.什么是程序 一堆指令的集合 2.回想一下猜数游戏程序的特征: 1)需要输入(input) 2)会处理输入(process) 3)产生输出(output) 二.程序的一般特征:输入.处理 ...
- Go并发编程实战 第2版 PDF (中文版带书签)
Go并发编程实战 第2版 目录 第1章 初识Go语言 1 1.1 语言特性 1 1.2 安装和设置 2 1.3 工程结构 3 1.3.1 工作区 3 1.3.2 GOPATH 4 1.3.3 源码文件 ...
- 【Leetcode_easy】859. Buddy Strings
problem 859. Buddy Strings solution: class Solution { public: bool buddyStrings(string A, string B) ...