|            
                         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。 
  这样,就可以控制树控件的高度了。 
 
 
   
 |