项目中用到的一个树控件[经过修改]


功能:支持选中多个节点,选中父结点自动选上子,子结点都选上时,父结点也会被选上,可以一级一级度数据,也可以一次性加载,功能很多。可以上官方网站看看http://webfx.eae.net    http://jsvm.homolo.com
使用方式
<head>中加入
<script src="../scripts/jsvm2/jsre.js" classpaht="webfx/xtree1.1.js"></script>
 <script  language="javascript">
 _import("com.eae.webfx.xtree.WebFXLoadTree");
 _import("com.eae.webfx.xtree.WebFXTree");
 _import("com.eae.webfx.xtree.WebFXTreeItem"); 
 </script>
<body>中加入
<div style="height:350px;width:265px;overflow:auto;background-color:#fff;">
<script type="text/javascript">
 var atree = new WebFXLoadTree("部门树","../catalog.do?action=GetCatalogForTextNode&catalogid=");
 //当选中某个节点的时候,必须选中子
 atree.onCheck = function (node, tree)
 {

  //把子部门选上 
  if(node.isChecked() == true)
  {
   SelChildNodes(node);
   SelParentNode(node);
  }
  else
  {
   UnSelChildNodes(node);
   UnSelParentNode(node);
  }
  //GetCalendarByDateAndUserId(node.value); 
 }
 atree.build();
 //全部展开
 //atree.expandAll();

 //选择子
 function SelChildNodes(node)
 {
  var i = 0;
  for(i=0;i<node.childNodes.length;i++)
  {
   if(node.childNodes.length > 0)
    SelChildNodes(node.childNodes[i]);
    
   node.childNodes[i].check(true);
  }
 }
 
 //取消选择子
 function UnSelChildNodes(node)
 {
  var i = 0;
  for(i=0;i<node.childNodes.length;i++)
  {
   if(node.childNodes.length > 0)
    UnSelChildNodes(node.childNodes[i]);
    
   node.childNodes[i].check(false);
  }
 }
 
 //选择父,也需要递归
 function SelParentNode(node)
 {
  var pNode = node.parentNode;
  var ok = true;
  for(i=0;i<pNode.childNodes.length;i++)
  { 
   if(pNode.childNodes[i].isChecked() == false)
   {
    //只要有一个没有选中,则返回
    ok = false;
    break;   
   } 
  }
  if(ok == true)
  {
   pNode.check(true);
   SelParentNode(pNode);
  }
 }
 //取消选择父,这里有点特殊,取消选择的时候,需要递归取消所有父
 function UnSelParentNode(node)
 {
  var pNode = node.parentNode;
  pNode.check(false);
  UnSelParentNode(pNode);
 }
 /*--------------------------------------------------------------
  功能:取得选中的选择部门或者用户的ID,用逗号隔开 by yesun
 ---------------------------------------------------------------*/
 function SelCatalogAndUser()
 {
  var aobj = atree.getSelectedChildNodes();
  var strId = "";
  var strName = "";  
  for (var i = 0; i < aobj.length; i++)
  {
   strId += aobj[i].value+",";
   strName += aobj[i].text+",";   
  }
  if(strId.length > 0)
  {
   strId = strId.substring(0,strId.length-1);
   strName = strName.substring(0,strName.length-1);  
  }
  return strId;
 } 
</script>
</div>

树控件下载
http://files.cnblogs.com/yesun/jsvm2.rar

你可能感兴趣的:(项目)