对ec:table的listHeigth属性的完善
firedragon
2007-02-06
在ecside的设计里,列表数据显示区显示的高度是根据listHeight设定的值来设置style的height属性,但这样会造成把列表高度写死,如果用不同的浏览器,body的高度并不一样,同一浏览器工具栏是否显示地址栏、标准按钮等显示的也不一样,从而造成翻页栏超出显示范围。为了能够让它能根据浏览器显示的大小自适应的做调整,我们可以通过在初始化列表时根据body.clientHeight来设定它的高度,这样就避免了以上的情况发生。
具体的做法是在ecside.js的initScroll里: var divSY=document.getElementById(Me.id+"_listScrollY"); if (!divSY){ Me.scrollList=false; return; } 的下面加上: //设定显示列表数据显示区的高度,使其随着窗口大小的改变而改变,在页面的listHeight属性就可以随便定,但不能不定,因为不定将没有divSY这个层 var h = document.body.clientHeight-80; divSY.style.height=h+"px"; 减去80是为了去掉表头的高度和翻页栏的高度 这样就基本实现了。 |
|
fins
2007-02-06
谢谢你提供的方案
但有一点不足 还是上次和你说过的那个问题: 不应该总是把 列表的高度 和 body绑死 可以把 document.body 替换成 ecform的parentNode.clientHeight 谢谢你的关注 |