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

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

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

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

接下来是对应的js代码

             $('Table1').datagrid({
onSelect: function (index, rowdata) {//用户选择一行时触发,index下标 rowdata被选中行数据 singleSelect 只能选中一行 //获取到子表的数据
$('#Table_dg').datagrid({
view: view,//展示视图
url: '',//ajax请求的地址
queryParams: {//需要传递的多个参数 },
detailFormatter: function (index, row) {//扩展行展示数据 告诉用户 具体返回是的是个什么样子的容器
return '<div></div>';
},
onLoadSuccess: function () {//当数据载入成功时触发
var row = $("#Table_dg").datagrid("getRows");//返回当前页的记录
for (var r = 0; r < row.length; r++) {
$("#Table_dg").datagrid("expandRow", r);//展开对应行
}
$('#Table_dg').datagrid('collapseGroup');//自动修正高度,但是会出BUG,所以加上一个折叠的动作,直接样式就fix完毕
},
onExpandRow: function (index, row) {//多层列表定义
var ddv = $(this).datagrid('getRowDetail', index).find('刚才在扩展行写的内容');//获取到扩展行的容器
ddv.datagrid({//获取到子表的从表的数据
queryParams: {//传递的多个参数 },
url: "",//ajax 访问的地址
fitColumns: true,//自动填满宽度
singleSelect: true,//只能选中单行
rownumbers: true,//排序
loadMsg: '',//加载中提示信息
height: 'auto',//高度自适应
columns: [[//对应列绑定数据
{ field: '后台传过来的对应的数据', title: '抬头' },
]],
onResize: function () {//该事件获取高度宽度 可进行调整
$('#Table_dg').datagrid('fixDetailRowHeight', index);
$('#Table_dg').datagrid('collapseGroup');//自动修正高度,但是会出BUG,所以加上一个折叠的动作,直接样式就fix完毕
},
onLoadSuccess: function () {//数据载入成功触发
$('#Table_dg').datagrid('collapseGroup');//自动修正高度,但是会出BUG,所以加上一个折叠的动作,直接样式就fix完毕
setTimeout(function () {
$('#Table_dg').datagrid('fixDetailRowHeight', index);
}, 0);
}
});
$('#Table_dg').datagrid('fixDetailRowHeight', index);
$('#Table_dg').datagrid('collapseGroup');//自动修正高度,但是会出BUG,所以加上一个折叠的动作,直接样式就fix完毕
}
});
}
});

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

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

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

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

EasyUI 网格 一主多从 从表使用自定义树状展开的更多相关文章

  1. Mysql增加主键或者更改表的列为主键的sql语句

                                                                                                        ...

  2. EasyUI + ajax + treegrid/datagrid 接收 json 数据,显示树状/网状表结构

    最后一更了,时间间隔有点久了~~ EasyUI作为一个成熟的前端框架,封装了ajax,对于数据的处理配合datagrid组件的使用,使其非常适合后台管理界面的开发(目前来说界面有点过时了). 通过aj ...

  3. Oracle根据主键获取对应表,Oracle根据外键获取相关表

    Oracle根据主键获取对应表 select * from user_constraints a, USER_CONS_COLUMNS b where a.CONSTRAINT_TYPE = 'P' ...

  4. SQL查找数据库中所有没有主键的数据表脚本

    --SQL查找数据库中所有没有主键的数据表脚本 --运行脚本后在消息中可能会显示下面现象中的一种:--(1)数据库中所有数据表都有主键(则证明所有数据表都有主键)--(2)当前数据表[数据表名]没有主 ...

  5. 主外键多表查询demo

    https://www.cnblogs.com/DragonFire/p/6949767.html mySQL练习-主外键多表查询 MySQL练习-主外键多表查询 练习: 1.建立表关系: 请创建如下 ...

  6. ShardingJdbc-分表;分库;分库分表;读写分离;一主多从+分表;一主多从+分库分表;公共表;数据脱敏;分布式事务

    目录 创建项目 分表 导包 表结构 Yml 分库 Yml Java 分库分表 数据库 Yml 读写分离 数据库 Yml 其他 只请求主库 读写分离判断逻辑代码 一主多从+分表 Yml 一主多从+分库分 ...

  7. MySQL递归查询树状表的子节点、父节点具体实现

    mysql版本(5.5.6等等)尚未支持循环递归查询,和sqlserver.oracle相比,mysql难于在树状表中层层遍历的子节点.本程序重点参考了下面的资料,写了两个sql存储过程,子节点查询算 ...

  8. openerp学习笔记 对象间关系【多对一(一对一)、一对多(主细结构)、多对多关系、自关联关系(树状结构)】

    1.多对一(一对一)关系:采购单与供应商之间的关系 'partner_id':fields.many2one('res.partner', 'Supplier', required=True, sta ...

  9. 基于ExtJs6前台,SpringMVC-Spring-Mybatis,resteasy,mysql无限极表设计,实现树状展示数据(treepanel)

    先从后台讲起 1.表的设计 parent_id就是另外一条记录的id,无限极表设计可以参考  http://m.blog.csdn.net/Rookie_Or_Veteran/article/deta ...

随机推荐

  1. webService cxf学习

    1.首先去官网下载cxf包 http://archive.apache.org/dist/cxf/ 记住要选.zip结尾 大概40兆的样子 2.把上边的包都放项目里.如果你用的jeecg框架,那它自带 ...

  2. mysql中not in子查询不能为空

    转载自:https://blog.csdn.net/headingalong/article/details/77744755 错误sql delete from company_info where ...

  3. docker 安装redis 并配置外网可以访问 - flymoringbird的博客 - CSDN博客

    原文:docker 安装redis 并配置外网可以访问 - flymoringbird的博客 - CSDN博客 端口映射,data目录映射,配置文件映射(在当前目录下进行启动). docker run ...

  4. 基于TensorFlow理解CNN中的padding参数

    1 TensorFlow中用到padding的地方 在TensorFlow中用到padding的地方主要有tf.nn.conv2d(),tf.nn.max_pool(),tf.nn.avg_pool( ...

  5. LINUX对超级用户和普通用户的理解

    什么是超级用户 在所有Linux系统中,系统都是通过UID来区分用户权限级别的,而UID为0的用户被系统约定为是具有超级权限.超级用户具有在系统约定的最高权限满园内操作,所以说超级用户可以完成系统管理 ...

  6. LUOGU P3111 [USACO14DEC]牛慢跑Cow Jog_Sliver

    传送门 解题思路 比较简单的一道思路题,首先假设他们没有前面牛的限制,算出每只牛最远能跑多远.然后按照初位置从大到小扫一遍,如果末位置大于等于前面的牛,那么就说明这两头牛连一块了. 代码 #inclu ...

  7. WebSocket前后端实现

    websocket.jsp <%@ page language="java" contentType="text/html; charset=UTF-8" ...

  8. NOIP模拟 6.26

    T1 子矩阵 题目描述 小A有一个N×M的矩阵,矩阵中1~N*M这(N*M)个整数均出现过一次.现在小A在这个矩阵内选择一个子矩阵,其权值等于这个子矩阵中的所有数的最小值.小A想知道,如果他选择的子矩 ...

  9. 洛谷P3459 [POI2007]MEG-Megalopolis [2017年6月计划 树上问题02]

    [POI2007]MEG-Megalopolis 题目描述 Byteotia has been eventually touched by globalisation, and so has Byte ...

  10. 洛谷P1650 赛马[2017年5月计划 清北学堂51精英班Day1]

    P1650 赛马 题目描述 我国历史上有个著名的故事: 那是在2300年以前.齐国的大将军田忌喜欢赛马.他经常和齐王赛马.他和齐王都有三匹马:常规马,上级马,超级马.一共赛三局,每局的胜者可以从负者这 ...