对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

谢谢你的关注
Global site tag (gtag.js) - Google Analytics