完善dorado项目时一个奇葩的需求, 按照内容大小自动调整模块大小

来源:互联网 发布:centos python3 编辑:程序博客网 时间:2024/04/30 11:08

一般情况下取消滚动条需要调整Table overflow属性,但该方法不适合Dorado。

经过测试发现showVScrollBar可以控制滚动条的显示与否。

        按照内容大小自动调整模块大小即为高度自适应!

在加载页面时调用以下方法:

/**

*  普通表高度自适应

*/

setTableAllStyle : function(dataset,table){
   //获取数据集中的数据个数
   var num = dataset.getVisibleCount();
   //判断数据集是否含有数据  没有给num复制为1
   if(num==0){
    num=1;
   }
   //设置tableSPECIALTERMITEM_QT样式的高度
   //表格高度 = (行数+1) * (行高+边框高度)+ (表头+页脚高度)
   table.style.height=(num+1)*23+30+"px";
  }

 调用的位置为: view--onDatasetsPrepared();

在添加新的行时,通过万能的alert()方法测试,发现在dataset的afterchange()方法中可以调用此方法实现高度自适应功能;

    由于部分Table存在级联关系导致高度无法实现自适应。经过测试发现在table的onRecordClick()方法和dataset的onGetValue()方法中调用可以实现。

    但是当鼠标滚轮多次滚动时onGetValue()事件会被多次触发可能影响系统性能,所以此次优化将Table的supportsMousewheel设为false。



以上的做法并不完美,可能会导致性能降低的风险,大家可以看看有没有更完美的解决方案,有的话可以联系我  我们交流一下


2 0
原创粉丝点击