起步软件技术论坛
搜索
 找回密码
 注册

QQ登录

只需一步,快速开始

查看: 4287|回复: 5

[结贴] ListTable点击行的时候如果子表没有结果集那么就隐藏子列表

[复制链接]

32

主题

93

帖子

193

积分

初级会员

Rank: 2

积分
193
QQ
发表于 2017-6-29 10:42:25 | 显示全部楼层 |阅读模式
版本: BeX5V3.5 小版本号:
数据库: MySQL 服务器操作系统: Windows 应用服务器: Tomcat
客户端操作系统: Windows 7 浏览器: Chrome
ListTable点击行的时候如果子表没有结果集那么就隐藏子列表,有结果集的时候就显示子列表,如下图所示:有数据是显示正常:




没数据时需把子列表隐藏:
2.png

这个该怎么实现?

91

主题

13万

帖子

3万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
36069
发表于 2017-6-29 13:56:35 | 显示全部楼层
可以定义一个函数获取主data的当前行id,判断从data中是否有这样的数据如果没有发返回fasle,有就返回true
然后在里面的thead上设置bind-visible
  1.         Model.prototype.rowVisible = function(event){
  2.            var zData1 = this.comp("bizData1");
  3.            var rowid = bizData1.getCurrentRowID();
  4.            var cData2 = this.comp("bizData2");
  5.            if(cData2.find(["fZB",rowid]).lenght>0){
  6.             return true;
  7.            }
  8.            else return false;
  9.         }
复制代码
list.png
远程的联系方法QQ1392416607,添加好友时,需在备注里注明其论坛名字及ID,公司等信息
发远程时同时也发一下帖子地址,方便了解要解决的问题  WeX5教程  WeX5下载



如按照该方法解决,请及时跟帖,便于版主结贴
回复 支持 反对

使用道具 举报

32

主题

93

帖子

193

积分

初级会员

Rank: 2

积分
193
QQ
 楼主| 发表于 2017-6-29 16:52:33 | 显示全部楼层
jishuang 发表于 2017-6-29 13:56
可以定义一个函数获取主data的当前行id,判断从data中是否有这样的数据如果没有发返回fasle,有就返回true
...

根据你给的代码现在的效果是这样的:1、子表没结果集的时候点击下面显示空白 11.png
2、子表有结果集的时候显示如下:(这样子列表的列头没有了) 22.png
3、理想的结果是子表没有结果集的时候点击保持原样不变,也就是把图1的空白去除掉的效果, 有结果集的时候,如图2上面的子列表的表头需要显示出来,而不是只显示结果。
回复 支持 反对

使用道具 举报

91

主题

13万

帖子

3万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
36069
发表于 2017-6-29 17:39:18 | 显示全部楼层
那可以在创建listtable的时设置默认不勾选,然后在默认的点击显示下面子的click事件中判断子是否有数据控制是否执行下面的方法看看
远程的联系方法QQ1392416607,添加好友时,需在备注里注明其论坛名字及ID,公司等信息
发远程时同时也发一下帖子地址,方便了解要解决的问题  WeX5教程  WeX5下载



如按照该方法解决,请及时跟帖,便于版主结贴
回复 支持 反对

使用道具 举报

32

主题

93

帖子

193

积分

初级会员

Rank: 2

积分
193
QQ
 楼主| 发表于 2017-6-30 08:44:35 | 显示全部楼层
jishuang 发表于 2017-6-29 17:39
那可以在创建listtable的时设置默认不勾选,然后在默认的点击显示下面子的click事件中判断子是否有数据控制 ...

点击的时候判断没问题,但是控制显示是这个代码:function(){var $e = $($element);$('>td>i.x-expand-i',$e).toggleClass('');$e.next().toggleClass('hide');}
这个再js中执行不了的, 我试过了
回复 支持 反对

使用道具 举报

91

主题

13万

帖子

3万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
36069
发表于 2017-6-30 11:43:27 | 显示全部楼层
1.重写第一次层list下的class为info的tr的bind-click事件如下:
  1.         Model.prototype.tr7Click = function(event) {
  2.                 var $e = $(event.currentTarget);
  3.                 var rowid = event.bindingContext.$object.getID();
  4.                 var cData = this.comp("bizData2");//里层嵌套list关联的data
  5.                 var rows = cData.find([ "fZB" ], [ rowid ]);
  6.                 if (rows.length > 0) {
  7.                         alert(1);
  8.                         $('>td>i.x-expand-i', $e).toggleClass('icon-arrow-right-b');
  9.                 }
  10.                 $e.next().toggleClass('hide');

  11.         };
复制代码

2.在1中这个tr同级的tr上设置bind-visible
如:bind-visible="$model.rowVisible($object)"
rowVisible函数的实现如下:
  1.         Model.prototype.rowVisible = function(event) {
  2.                 var rowid = event.getID();
  3.                 var cData2 = this.comp("bizData2");//里层嵌套list关联的data
  4.                 var rows = cData2.find([ "fZB" ], [ rowid ]);
  5.                 if (rows.length > 0) {
  6.                         return true;
  7.                 }

  8.                 else
  9.                         return false;
  10.         }
复制代码


远程的联系方法QQ1392416607,添加好友时,需在备注里注明其论坛名字及ID,公司等信息
发远程时同时也发一下帖子地址,方便了解要解决的问题  WeX5教程  WeX5下载



如按照该方法解决,请及时跟帖,便于版主结贴
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

小黑屋|手机版|X3技术论坛|Justep Inc.    

GMT+8, 2024-11-26 00:36 , Processed in 0.101941 second(s), 28 queries .

Powered by Discuz! X3.4

© 2001-2013 Comsenz Inc.

快速回复 返回顶部 返回列表