treegrid树形表格的完美运用

一 问题描述:

树形表格TreeGrid在日常项目中还是运用的比较多的,哪我们在项目中,应该怎么引入和使用

TreeGrid呢?

二 使用步骤

  1.首先我们需要在项目中,引入TreeGrid组件  需要引入的文件

   <!-- 引入treegrid-->
    <link rel="stylesheet" th:href="@{/static/js/plugins/bootstrap-table-treegrid/jquery.treegrid.min.css}">
    <script type="text/javascript"  th:src="@{/static/js/plugins/bootstrap-table-treegrid/bootstrap-table-treegrid.js}"></script>
    <script type="text/javascript"  th:src="@{/static/js/plugins/bootstrap-table-treegrid/jquery.treegrid.min.js}"></script>

 2. 需要在页面定义一个容器

 <div>
     <div>
        <h1></h1>
           <table id="menuTable"></table>
          <br/>
      </div>
</div>

 3. JS代码加载数据

 1  var menus =   [[${menus}]]; //后台传递的过来的数据
 2  var $table = $('#menuTable');
 3         // '[{"id":1,"pid":0,"name":"用户管理",url:'',icon:'',"permission":{}},' +
 4     $(function() {
 5         //加载树形表格
 6         $table.bootstrapTable({
 7             data:menus,
 8             idField: 'id',
 9             dataType:'jsonp',
10             columns: [
11                 { field: 'check',  checkbox: true, formatter: function (value, row, index) {
12                         if (row.check == true) {
13                             // console.log(row.serverName);
14                             //设置选中
15                             return {  checked: true };
16                         }
17                     }
18                 },
19                 { field: 'name',  title: '名称' },
20                 { field: 'url',  title: '路径' },
21                 { field: 'icon',  title: '图标' },
22                 // {field: 'id', title: '编号', sortable: true, align: 'center'},
23                 {field: 'pid', title: '所属上级',formatter:'pidFormatter'},
24                 { field: 'permission',  title: '权限值', sortable: true,  align: 'center', formatter: 'permissionFormatter'  },
25                 { field: 'operate', title: '操作', align: 'center', events : operateEvents, formatter: 'operateFormatter' },
26             ],
30             //在哪一列展开树形
31             treeShowField: 'name',
32             //指定父id列
33             parentIdField: 'pid',
35             onResetView: function(data) {
36                 //console.log('load');
37                 $table.treegrid({
38                     initialState: 'collapsed',// 所有节点都折叠
39                     // initialState: 'expanded',// 所有节点都展开,默认展开
40                     treeColumn: 1,
41                     expanderExpandedClass: 'mdi mdi-minus',  //图标样式
42                     expanderCollapsedClass: 'mdi mdi-plus',
43                     onChange: function() {
44                         $table.bootstrapTable('resetWidth');
45                     }
46                 });
48                 //只展开树形的第一级节点
49                 $table.treegrid('getRootNodes').treegrid('expand');
51             },
52             onCheck:function(row){
53                 var datas = $table.bootstrapTable('getData');
54                 // 勾选子类
55                 selectChilds(datas,row,"id","pid",true);
56 
57                 // 勾选父类
58                 selectParentChecked(datas,row,"id","pid")
59 
60                 // 刷新数据
61                 $table.bootstrapTable('load', datas);
62             },
63 
64             onUncheck:function(row){
65                 var datas = $table.bootstrapTable('getData');
66                 selectChilds(datas,row,"id","pid",false);
67                 $table.bootstrapTable('load', datas);
68             }
70         });

 4 最终效果

5 最后实践

  赶快行动起来 测试一下吧,需要源码的 ,可以联系我

原文地址:https://www.cnblogs.com/Coder1988/p/13039396.html