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

QQ登录

只需一步,快速开始

查看: 8278|回复: 5

[处理中3] Grid.hideCol调用之后,列间距无法恢复

[复制链接]

56

主题

111

帖子

285

积分

中级会员

Rank: 3Rank: 3

积分
285
QQ
发表于 2018-5-30 14:48:19 | 显示全部楼层 |阅读模式
版本: 小版本号:
数据库: 服务器操作系统: 应用服务器:
客户端操作系统: 浏览器:
见图一:在日志选项卡里,设置了4个gridFilter:1、生产批号;2、设备名称;3、设备编号;4、生产模式。
其中,生产模式gridFilter里面,有4个选项:1、清洁;2、糖包衣;3、维修/手动;4、薄膜包衣。

问题在第四个gridFilter。
当我选择第四个gridFilter里面的“糖包衣”或者薄膜包衣的时候,显示的关系列数,是最多的,大概50多列;
当我选择第四个gridFilter里面的“维修/手动”的时候,大概有10几列。

问题描述:
   1、当我从50多列切换到10多列的时候,我采用的方式是Grid.hideCol方法;也就是把不需要的列隐藏了,
        这导致切换后,列间距变得很宽,见图二
    2、当从10多列切换回50多列的时候,把隐藏的列再显示出来,虽然列数不少,但列间距无法恢复;

尝试 data 刷新、grid刷新,filters.clear() 都不起效果。
请问,Grid列间距问题,需要修改什么地方。
图一.jpg
图二.jpg

91

主题

13万

帖子

3万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
36185
发表于 2018-5-30 15:11:39 | 显示全部楼层
远程的联系方法QQ1392416607,添加好友时,需在备注里注明其论坛名字及ID,公司等信息
发远程时同时也发一下帖子地址,方便了解要解决的问题  WeX5教程  WeX5下载



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

使用道具 举报

56

主题

111

帖子

285

积分

中级会员

Rank: 3Rank: 3

积分
285
QQ
 楼主| 发表于 2018-5-31 16:11:58 | 显示全部楼层
上图中,第4个gridFilter,其中有糖包衣、薄膜包衣、清洁、维修/手动,四个选项。
我自定义了onFilter事件。
在 糖包衣选项下,显示50多列数据;切换到清洁选项,就只有10多列数据了。
问题是:再从10多列切换回50多列的时候,数据能变化过来,但是gridl列表头不变化。
什么情况?

感觉gridFilter中,后一次的过滤,是以前一过滤结果为基础的。也就是说是过滤的前一结果的缓存??
怎样实现,每次过滤都是直接从数据库里面取数据!!

回复 支持 反对

使用道具 举报

91

主题

13万

帖子

3万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
36185
发表于 2018-5-31 16:29:02 | 显示全部楼层
onFilter事件中具体怎么实现的?
远程的联系方法QQ1392416607,添加好友时,需在备注里注明其论坛名字及ID,公司等信息
发远程时同时也发一下帖子地址,方便了解要解决的问题  WeX5教程  WeX5下载



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

使用道具 举报

56

主题

111

帖子

285

积分

中级会员

Rank: 3Rank: 3

积分
285
QQ
 楼主| 发表于 2018-5-31 16:45:15 | 显示全部楼层
Model.prototype.gridFilter93Filter = function(event){
    //
    var curData = this.comp('mainData');//获取当前绑定的bizData组件
    var gridFilter90 = this.comp('gridFilter90');//表示生产批号gridFilter组件
    var gridFilter91 = this.comp('gridFilter91');//表示设备名称gridFilter组件
    var gridFilter92 = this.comp('gridFilter92');//表示设备编号gridFilter组件
    var gridFilter93 = this.comp('gridFilter93');//表示生产模式gridFilter组件
    var curValue90 = gridFilter90.selectedValue.get();//获取生产批号gridFilter中选中的选项
    var curValue91 = gridFilter91.selectedValue.get();//获取设备名称gridFilter中选中的选项
    var curValue92 = gridFilter92.selectedValue.get();//获取设备编号gridFilter中选中的选项
    var curValue93 = gridFilter93.selectedValue.get();//获取生产模式gridFilter中选中的选项
    var curGrid = this.comp('loggingGrid');//表示当前grid组件

    switch(curValue93)//判断生产模式gridFilter中选中的选项的值,值为:糖包衣、薄膜包衣、清洁、维修/手动
{
case '清洁': //清洁选项中,要显示的选项很少,所有要隐藏部分列
  curGrid.hideCol('bympzl');//包衣每批重量
  curGrid.hideCol('bymgzl');//包衣每锅重量
  curGrid.hideCol('bympgs');//包衣每批锅数
  curGrid.hideCol('yrcxsj');//预热持续时间
  curGrid.hideCol('slcxsj');//上料持续时间
  curGrid.hideCol('bycxsj');//包衣持续时间
  curGrid.hideCol('pjcxsj');//喷浆持续时间
  curGrid.hideCol('hhcxsj');//混合持续时间
  curGrid.hideCol('clcxsj');//出料持续时间
  curGrid.hideCol('pjcsdqsd');//喷浆次数当前设定
  curGrid.hideCol('hhcsdqsd');//混合次数当前设定
  curGrid.hideCol('ahucfwd');//AHU出风温度
  curGrid.hideCol('ahucfsd');//AHU出风湿度
  curGrid.hideCol('ahucfkfl');//AHU出风口风量
  curGrid.hideCol('byjpfwd');//包衣机排风温度
  curGrid.hideCol('byjpfsd');//包衣机排风湿度
  curGrid.hideCol('byjnwd');//包衣机内温度
  curGrid.hideCol('byjnzkd');//包衣机内真空度
  curGrid.hideCol('bygzs');//包衣锅转速
  curGrid.hideCol('pfjzs');//排风机转速
  curGrid.hideCol('pcwd');//片床温度
  curGrid.hideCol('byyll');//包衣液流量
  curGrid.hideCol('byyyl');//包衣液压力
  curGrid.hideCol('qqjgsj');//清枪间隔时间
  curGrid.hideCol('zqyl');//蒸汽压力
  curGrid.hideCol('lnsyl');//冷凝水压力
  curGrid.hideCol('glq1yc');//过滤器1压差
  curGrid.hideCol('glq2yc');//过滤器2压差
  curGrid.hideCol('glq3yc');//过滤器3压差
  break;
case '维修/手动'://维修/手动选项中,要显示的选项很少,所有要隐藏部分列
  curGrid.hideCol('bympzl');
  curGrid.hideCol('bymgzl');
  curGrid.hideCol('bympgs');
  curGrid.hideCol('yrcxsj');
  curGrid.hideCol('slcxsj');
  curGrid.hideCol('bycxsj');
  curGrid.hideCol('pjcxsj');
  curGrid.hideCol('hhcxsj');
  curGrid.hideCol('gzcxsj');
  curGrid.hideCol('clcxsj');
  curGrid.hideCol('yxcxsj');
  curGrid.hideCol('qxcxsj');
  curGrid.hideCol('pxcxsj');
  curGrid.hideCol('pjcsdqsd');
  curGrid.hideCol('hhcsdqsd');
  curGrid.hideCol('gzcsdqsd');
  curGrid.hideCol('yxcsdqsd');
  curGrid.hideCol('qxcsdqsd');
  curGrid.hideCol('pxcsdqsd');
  curGrid.hideCol('ahucfwd');
  curGrid.hideCol('ahucfsd');
  curGrid.hideCol('ahucfkfl');
  curGrid.hideCol('byjpfwd');
  curGrid.hideCol('byjpfsd');
  curGrid.hideCol('byjnwd');
  curGrid.hideCol('byjnzkd');
  curGrid.hideCol('bygzs');
  curGrid.hideCol('pfjzs');
  curGrid.hideCol('pcwd');
  curGrid.hideCol('byyll');//包衣液流量
  curGrid.hideCol('byyyl');//包衣液压力
  curGrid.hideCol('qqjgsj');//清枪间隔时间
  curGrid.hideCol('qjsw');//清洁水温
  curGrid.hideCol('qjsy');//清洁水压
  curGrid.hideCol('qjsls');//清洁水流速
  curGrid.hideCol('qjjmc');//清洁机名称
  curGrid.hideCol('qjjyl');//清洁剂用量
  curGrid.hideCol('qjjwd');//清洁剂温度
  curGrid.hideCol('qjjdyl');//清洁剂的压力
  curGrid.hideCol('qjjls');//清洁剂流速
  curGrid.hideCol('gzkqwd');//干燥空气温度
  curGrid.hideCol('gzkqyl');//干燥空气压力
  curGrid.hideCol('gzkqll');//干燥空气流量
  curGrid.hideCol('zqyl');//蒸汽压力
  curGrid.hideCol('lnsyl');//冷凝水压力
  curGrid.hideCol('glq1yc');//过滤器1压差
  curGrid.hideCol('glq2yc');//过滤器2压差
  curGrid.hideCol('glq3yc');//过滤器3压差

  break;
  case '糖包衣'://如果选中此项,需要显示所有列
  curData.applyUpdates();//这行代码随便写的,我认为糖包衣和  薄膜包衣的  case 判断可以不写,因为后面有setFilter,只要每次不从缓存读数据,就能正常显示
  break;
  case '薄膜包衣'://如果选中此项,需要显示所有列
   curData.applyUpdates();//这行代码随便写的,我认为糖包衣和  薄膜包衣的  case 判断可以不写,因为后面有setFilter,只要每次不从缓存读数据,就能正常显示
  break;
default:
        //
       

}
    //这是自定义onFilter功能的核心代码,setFilter
    curData.setFilter('filter1','ca_coater525.scph = :scph and ca_coater525.sbmc = :sbmc and ca_coater525.sbbh = :sbbh and ca_coater525.scms = :scms');
    curData.filters.setStringVar('scph',curValue90);
    curData.filters.setStringVar('sbmc',curValue91);
    curData.filters.setStringVar('sbbh',curValue92);
    curData.filters.setStringVar('scms',curValue93);

    curGrid.$domNode.jqGrid('setGridParam', {shrinkToFit:false});//隐藏列之后,调整列宽
    curGrid.refresh();
    curData.first();
    curData.refreshData();  
    curData.filters.clear();

       gridFilter90.update();//这个可能不需要,先写上
    gridFilter91.update();//这个可能不需要,先写上
    gridFilter92.update();//这个可能不需要,先写上
        };


回复 支持 反对

使用道具 举报

91

主题

13万

帖子

3万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
36185
发表于 2018-5-31 16:49:14 | 显示全部楼层
自己调用了隐藏的如果要显示需要自己再调用显示
http://doc.wex5.com/?p=4560#3.1
远程的联系方法QQ1392416607,添加好友时,需在备注里注明其论坛名字及ID,公司等信息
发远程时同时也发一下帖子地址,方便了解要解决的问题  WeX5教程  WeX5下载



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

使用道具 举报

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

本版积分规则

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

GMT+8, 2025-7-11 19:34 , Processed in 0.064455 second(s), 28 queries .

Powered by Discuz! X3.4

© 2001-2013 Comsenz Inc.

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