TreeView是Microsoft IE WebControls中很有用的控件,应用广泛。随着TreeView打开和收拢,它所实际占据的高度也在变化,我的一个项目中,需要Treeview Control的高度随之变化,形成“紧凑”的布局。实现方法如下:
一、修改treeview.htc
treeview.htc在http://localhost/webctrl_client/1_0/中,加入如下几行:
<public:property name="TreeviewNode" GET="getTreeviewNode" />
function getTreeviewNode()
{
return treeviewNode;
}
这是为了将隐藏的属性传递出来。
二、定义javascript函数
function AthosGetTreeViewCompactHeight(TreeviewID)
{
objTreeview = document.all[TreeviewID];
objTreeviewNode = objTreeview.TreeviewNode;
objTreeviewDivs = objTreeviewNode.getElementsByTagName("DIV");
iCount = objTreeviewDivs.length;
CompactHeight = -1;
for(i=0;i<iCount;i++)
{
objTreeviewDiv = objTreeviewDivs[i];
iTop = objTreeviewDiv.offsetTop;
iHeight = objTreeviewDiv.offsetHeight;
iBottom = iTop+iHeight;
if(iBottom > CompactHeight)
CompactHeight = iBottom;
}
return CompactHeight;
}
function AthosFitTreeViewHeight(TreeviewID)
{
objTreeview = document.all[TreeviewID];
objTreeview.style.height = String(AthosGetTreeViewCompactHeight(TreeviewID))+"px";
}
第一个函数,是取得树的实际高度。第二个函数,是重新设定树控件的高度。参数则都是树控件的id。
这样,就可以控制树控件的高度了。
// athossmth 版权所有,转载请与作者联系。