zoukankan      html  css  js  c++  java
  • EasyUI 网格 一主多从 从表使用自定义树状展开

    1                     <table id="Table1" class="easyui-datagrid" title="标题" style=" 100%;"
    2                         data-options="fitColumns:true,rownumbers:true,singleSelect:true,striped:true,collapsible:true,pagination:true,pageSize:3,pageList:[3,6,9],url:'ajax路径'">
    3                         <thead>
    4                             <tr>
    5                                 <th></th>
    6                             </tr>
    7                         </thead>
    8                     </table>

    上面是最基本的主表 下面是对应的子表

    1         <table id="Table_dg" class="easyui-datagrid"
    2             data-options="fitColumns:true,rownumbers:true,singleSelect:true,striped:true,collapsible:true,url:'ajax路径'">
    3             <thead>
    4                 <tr>
    5                     <th data-options="field:'字段名'"></th>
    6                 </tr>
    7             </thead>
    8         </table>

    这里用到了一个插件 需要引入一个js包  jquery-easyui-datagridview

    接下来是对应的js代码

     1             $('Table1').datagrid({
     2                 onSelect: function (index, rowdata) {//用户选择一行时触发,index下标 rowdata被选中行数据 singleSelect 只能选中一行
     3 
     4                     //获取到子表的数据
     5                     $('#Table_dg').datagrid({
     6                         view: view,//展示视图
     7                         url: '',//ajax请求的地址
     8                         queryParams: {//需要传递的多个参数
     9 
    10                         },
    11                         detailFormatter: function (index, row) {//扩展行展示数据 告诉用户 具体返回是的是个什么样子的容器
    12                             return '<div></div>';
    13                         },
    14                         onLoadSuccess: function () {//当数据载入成功时触发
    15                             var row = $("#Table_dg").datagrid("getRows");//返回当前页的记录
    16                             for (var r = 0; r < row.length; r++) {
    17                                 $("#Table_dg").datagrid("expandRow", r);//展开对应行
    18                             }
    19                             $('#Table_dg').datagrid('collapseGroup');//自动修正高度,但是会出BUG,所以加上一个折叠的动作,直接样式就fix完毕
    20                         },
    21                         onExpandRow: function (index, row) {//多层列表定义  
    22                             var ddv = $(this).datagrid('getRowDetail', index).find('刚才在扩展行写的内容');//获取到扩展行的容器
    23                             ddv.datagrid({//获取到子表的从表的数据
    24                                 queryParams: {//传递的多个参数
    25 
    26                                 },
    27                                 url: "",//ajax 访问的地址
    28                                 fitColumns: true,//自动填满宽度
    29                                 singleSelect: true,//只能选中单行
    30                                 rownumbers: true,//排序
    31                                 loadMsg: '',//加载中提示信息
    32                                 height: 'auto',//高度自适应
    33                                 columns: [[//对应列绑定数据
    34                                 { field: '后台传过来的对应的数据', title: '抬头' },
    35                                 ]],
    36                                 onResize: function () {//该事件获取高度宽度 可进行调整
    37                                     $('#Table_dg').datagrid('fixDetailRowHeight', index);
    38                                     $('#Table_dg').datagrid('collapseGroup');//自动修正高度,但是会出BUG,所以加上一个折叠的动作,直接样式就fix完毕
    39                                 },
    40                                 onLoadSuccess: function () {//数据载入成功触发
    41                                     $('#Table_dg').datagrid('collapseGroup');//自动修正高度,但是会出BUG,所以加上一个折叠的动作,直接样式就fix完毕
    42                                     setTimeout(function () {
    43                                         $('#Table_dg').datagrid('fixDetailRowHeight', index);
    44                                     }, 0);
    45                                 }
    46                             });
    47                             $('#Table_dg').datagrid('fixDetailRowHeight', index);
    48                             $('#Table_dg').datagrid('collapseGroup');//自动修正高度,但是会出BUG,所以加上一个折叠的动作,直接样式就fix完毕
    49                         }
    50                     });
    51                 }
    52             });

    对于展开的多层表格进行单行选择操作

     1             $("按钮").click(function () {
     2                 var details = [];
     3                 var detail;
     4                 for (var i = 0; i < $('.ddv').length; i++) {
     5                     detail = $('.ddv').eq(i).datagrid('getSelected');//通过判断每个表格选中行的值 
     6                     if (detail != null) {
     7                         details.push(detail);//将被选中的行的值填充进数组中
     8                     }
     9                 }
    10                 if (details.length > 1) {//如果数组长度大于1 说明有多条数据被选中 提示用户 以及刷新选中状态
    11                     alert("只能选取一条数据");
    12                     //自动取消选择状态
    13                     $('#Table_dg').datagrid('rejectChanges');
    14                     editIndex = undefined;
    15                 }
    16                 else {//一条数据
    17                     var row = details[0];
    18                     if (row) {
    19                       //弹窗什么的
    20                     }
    21                     else alert("请选择一条记录进行编辑!");
    22                 }
    23             });

    类似于下图 信息不方便透露

    下面的从表是可以像树状图那种 折叠展开的 这里设置的是 多个从表只能单选一行数据

  • 相关阅读:
    20155239 2017-2018-1《信息安全系统设计》第二周课堂测试
    第一次课下测试试题补做
    20155239吕宇轩 《信息安全系统设计基础》第一周学习总结
    C语言指针学习
    C语言 迭代部分的代码编写
    20155234 2016-2017-2第十周《Java学习笔记》学习总结
    20155234 实验二 Java面向对象程序设计
    20155234 2610-2017-2第九周《Java学习笔记》学习总结
    20155234 2016-2017-2 《Java程序设计》第8周学习总结
    20155234 2016-2017-2 《Java程序设计》第7周学习总结
  • 原文地址:https://www.cnblogs.com/xiemin-minmin/p/11648839.html
Copyright © 2011-2022 走看看