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



    功能:支持选中多个节点,选中父结点自动选上子,子结点都选上时,父结点也会被选上,可以一级一级度数据,也可以一次性加载,功能很多。可以上官方网站看看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;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>

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

  • 相关阅读:
    查询详细信息和删除记录
    软件开发过程中常用到的一些工具
    无服务器端的UDP群聊功能剖析(WCF版)
    vim插件使用
    C#中ConnectionStrings和AppSettings的区别
    《Effective C++》简明笔记上
    设计模式的一些所想所得
    对RESTful Web API的理解与设计思路
    js加载脚
    OSGi.NET 学习笔记 [模块可扩展支持][概念][实例]
  • 原文地址:https://www.cnblogs.com/yesun/p/430728.html
Copyright © 2020-2023  润新知