⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 treeview.js

📁 DWR与界面开发 ,对ajax感兴趣的可以看看哦
💻 JS
📖 第 1 页 / 共 3 页
字号:
      }
    }
    if (resNodes.length <= 0){
      alert("没有找到匹配的节点!");
    }
    return resNodes;
  }

  //根据节点关键字模糊查询
  this.searcNodesByName = function (inName){
    if (inName == null || inName == ""){
      alert("请输入要匹配的字符串!");
      return ;
    }
    var resNodes = new Array();
    for (var i=0; i<this.nodeList.length; i++){
      if (this.nodeList[i].name.Trim().indexOf(inName) >= 0){
        resNodes.length++;
        resNodes[resNodes.length-1] = this.nodeList[i];
      }
    }
    if (resNodes.length <= 0){
      alert("没有找到匹配的节点!");
    }
    return resNodes;
  }

  //根据节点关键字检索节点
  this.getNodeByName = function (inName){
    for (var i=0; i<this.nodeList.length; i++){
      if (this.nodeList[i].getName() == inName){
        return this.nodeList[i];
      }
    }
    return null;
  }

  //根据节点索引检索节点
  this.getNodeById = function (inId){
    if (inId >= 0 && inId < this.nodeList.length){
      return this.nodeList[inId];
    }
    return null;
  }

  //设置当前选中树节点
  this.setTreeNodeID = function (in_id){
    document.getElementById(this.name+"_thisTreeNodeID").value = in_id;
    document.getElementById("thisTreeName").value = this.name;
  }

  this.getSelectNode = function (){
    if (this.getTreeNodeID() >= 0 && this.getTreeNodeID() < this.nodeList.length){
      return this.nodeList[this.getTreeNodeID()];
    }
    else{
      alert("没有选中的节点!");
      return null;
    }
  }

  this.getTreeNodeID = function (){
    return document.getElementById(this.name+"_thisTreeNodeID").value;
  }

  //得到当前选中的树节点ID
  this.getTreeNodePid = function (){
    var reStr = this.nodeList[this.getTreeNodeID()].pid;
    return reStr;
  }

  //得到当前选中的树节点的附属参数
   this.getTreeNodePara = function (){
    var reStr = this.nodeList[this.getTreeNodeID()].paras;
    return reStr;
  }

  //得到当前选中的树节点的名称
  this.getTreeNodeName = function (){
    var reStr = this.nodeList[this.getTreeNodeID()].name;
    return reStr;
  }

  //得到当前选中的树节点的显示内容
  this.getTreeNodeShowStr = function (){
    var reStr = this.nodeList[this.getTreeNodeID()].showStr;
    return reStr;
  }

  //得到当前选中的树节点的JS动作名
  this.getTreeNodeJsFun = function (){
    var reStr = this.nodeList[this.getTreeNodeID()].jsfun;
    return reStr;
  }

  //根据附属参数名得到当前选中的树节点的对应附属参数值
  this.getTreeOneParaByName = function (in_paraName){
    var reStr = this.getTreeNodePara();
    if (reStr != null && reStr != ""){
      var temp1 = reStr;
      var a = temp1.split("&");
      for(var i=0;i<a.length;i++){
        var t = a[i].split("=");
        if (t[0] == in_paraName){
          return t[1];
        }
      }
    }
  }
  /*****用户使用JS函数结束*****/
}

function BSNode(id, pid, deepID, treeName, name, showStr, jsfun, openjs, paras, isOpen, isDoOpen, rmAreaIndex){
  this.id=id;//节点索引。
  this.pid=pid;//父节点索引,为-1表示是根。
  this.deepID=deepID;//节点深度。
  this.showStr=showStr||"BSNode_"+this.id;//节点显示的文字内容
  this.jsfun=jsfun||""//该节点点击的JS操作
  this.openjs=openjs||""//即点即查,该节点点击展开的JS操作。
  this.treeName=treeName||"BSTreeView";//树对象实例名。
  this.name=name?name:"BSNode";//节点名。
  this.paras=paras||"";//节点其他参数。
  this.childList = new Array();
  this.isOpen = isOpen||false;
  this.isDoOpen = isDoOpen||false;
  this.openImg = "open.gif";
  this.closeImg = "close.gif";
  this.nodeImg = "jsdoc.gif";
  this.rmAreaIndex = rmAreaIndex;
  this.body = null;
  this.isDelete = false;
  this.title = "";//节点的title

  /*****get/set方法开始*****/
  this.getId = function (){
    return this.id;
  }
  this.setId = function (inId){
    this.id = inId;
  }

  this.getName = function (){
    return this.name;
  }
  this.setName = function (inName){
    this.name = inName;
  }

  this.setBody = function (inBody){
    this.body = inBody;
  }
  this.getBody = function (){
    return this.body;
  }

	//更新节点显示的文字
  this.setShowStr = function (inStr){
    this.showStr = inStr;
    if (document.getElementById(this.treeName+"_"+this.id)!= null){
      document.getElementById(this.treeName+"_"+this.id).innerHTML = this.showStr;
    }
  }
  this.getShowStr = function (){
    return this.showStr;
  }

  this.setTitle = function(inTitle){
  	this.title = inTitle;
  }
  this.getTitle = function(){
  	return this.title;
  }

  this.setRmAreaIndex = function(inIndex){
  	this.rmAreaIndex = inIndex;
  }

  //得到右键菜单
  this.getRmArea = function(){
    var tempTree = eval(this.treeName);
  	if ((tempTree.rmObj!=null && tempTree.itemAreaList.length>0) && (this.rmAreaIndex>=0 && this.rmAreaIndex<tempTree.itemAreaList.length)){
	  	return tempTree.itemAreaList[this.rmAreaIndex];
  	}
  	return null;
  }

  this.openFlag = function(){
  	return this.isOpen;
  }

  this.getDeep = function(){
  	return this.deepID;
  }

  /*****get/set方法结束*****/

  /*****节点操作方法开始*****/
  this.addChildItem = function(id){
    this.childList.length++;
    this.childList[this.childList.length - 1] = id;
  }

	//更新一个节点
  this.updateNode = function (inNode){
    var tempTree = eval(this.treeName);
    return tempTree.updateNode(this.id, inNode);
  }

  //添加子节点
  this.addNode = function(name, showStr, jsfun, openjs, paras, isOpen, isDoOpen, rmAreaIndex, openImg, closeImg, nodeImg){
    var tempTree = eval(this.treeName);
    return tempTree.addNode(this.id, (this.deepID+1), name, showStr, jsfun, openjs, paras, isOpen, isDoOpen, rmAreaIndex, openImg, closeImg, nodeImg);
  }

  this.addOneNode = function(inId){
     var tempTree = eval(this.treeName);
     return tempTree.addOneNode(this.id, tempTree.getNodeById(inId));
  }

  this.deleteOneChildNode = function(){
    var tempTree = eval(this.treeName);
    var p=-1;
    if (this.pid < 0){
      //单个根节点(暂不提供)
    }
    else{
      var p_node = tempTree.nodeList[this.pid];
      for (var i=0; i<p_node.childList.length; i++){
        //得到孩子位置
        if (p_node.childList[i] == this.id){
          p = i;
        }
        if (p >= 0 && i <= p_node.childList.length-2){
          p_node.childList[i] = p_node.childList[i+1];
        }
      }
      if (p >= 0){
        p_node.childList.length--;
      }
    }
  }

  //删除本节点
  this.remove = function(){
    var tempTree = eval(this.treeName);
    tempTree.removeNode(this.id);
  }

  //激活该节点
  this.setNodeActive = function (){
    var tempTree = eval(this.treeName);
    tempTree.setNodeActiveById(this.id);
  }

  //打开/关闭本节点
  this.expand = function (){
    var tempTree = eval(this.treeName);
    tempTree.expandById(this.id);
  }

  //打开本节点
  this.open = function (){
  	if (!this.isOpen){
	    var tempTree = eval(this.treeName);
	    tempTree.openById(this.id);
  	}
  }
  //关闭本节点
  this.close = function (){
  	if (this.isOpen){
	    var tempTree = eval(this.treeName);
	    tempTree.closeById(this.id);
  	}
  }

  //删除本节点的所有孩子节点
  this.removeAllChildren = function(){
    var tempTree = eval(this.treeName);
    var t_length = this.childList.length
    for (var i=0; i<t_length; i++){
      tempTree.removeNode(this.childList[0]);
    }
    this.setNodeActive();
  }
  /*****节点操作方法开始*****/

  /*****亲属节点开始*****/
  //得到上一个兄弟
  this.prev = function (){
    var tempTree = eval(this.treeName);
    var p_node = tempTree.nodeList[this.pid];
    for (var i=0; i<p_node.childList.length; i++){
      if (p_node.childList[i] == this.id && i>0){
          return tempTree.nodeList[p_node.childList[i-1]];
      }
    }
    return null;
  }

  //得到下一个兄弟
  this.next = function (){
    var tempTree = eval(this.treeName);
    var p_node = tempTree.nodeList[this.pid];
    for (var i=0; i<p_node.childList.length; i++){
      if (p_node.childList[i] == this.id && i<p_node.childList.length-1){
          return tempTree.nodeList[p_node.childList[i+1]];
      }
    }
    return null;
  }

  //得到第一个兄弟
  this.first = function (){
    var tempTree = eval(this.treeName);
    var p_node = tempTree.nodeList[this.pid];
    return tempTree.nodeList[p_node.childList[0]];
  }

  //得到最后一个兄弟
  this.last = function (){
    var tempTree = eval(this.treeName);
    var p_node = tempTree.nodeList[this.pid];
    return tempTree.nodeList[p_node.childList[p_node.childList.length-1]];
  }

  //得到父亲
  this.parent = function (){
    var tempTree = eval(this.treeName);
    if (this.pid >= 0){
    	return tempTree.nodeList[this.pid];
    }
    return null;
  }

  //得到孩子节点集合
  this.children = function(){
    var tempTree = eval(this.treeName);
  	var tempList = new Array(this.childList.length);
  	for (var i=0; i<this.childList.length; i++){
  		tempList[i] = tempTree.nodeList[this.childList[i]];
  	}
  	return tempList;
  }
  /*****亲属节点结束*****/

  /*****用户使用JS函数开始*****/
  //根据附属参数名得到本节点的对应附属参数值
  this.getTreeOneParaByName = function (paraName){
    if (this.paras != null && this.paras != ""){
      var temp1 = this.paras;
      var a = temp1.split("&");
      for(var i=0;i<a.length;i++){
        var t = a[i].split("=");
        if (t[0] == paraName){
          return t[1];
        }
      }
    }
  }

  //根据节点显示的内容模糊查询子节点
  this.searcNodesByText = function (inText){
    if (inText == null || inText == ""){
      alert("请输入要匹配的字符串!");
      return ;
    }
    var tempTree = eval(this.treeName);
    var resNodes = new Array();
    this.searchChildrenNodeByText(resNodes, inText);
    if (resNodes.length <= 0){
      alert("没有找到匹配的节点!");
    }
    return resNodes;
  }

  //根据节点的关键字模糊查询
  this.searcNodesByName = function (inName){
    if (inName == null || inName == ""){
      alert("请输入要匹配的字符串!");
      return ;
    }
    var tempTree = eval(this.treeName);
    var resNodes = new Array();
    this.searchChildrenNodeByName(resNodes, inName);
    if (resNodes.length <= 0){
      alert("没有找到匹配的节点!");
    }
    return resNodes;
  }
  /*****用户使用JS函数结束*****/

  //查找匹配的孩子节点(私有)
  this.searchChildrenNodeByName = function(resNodes, inName){
    var tempTree = eval(this.treeName);
    for (var i=0; i<this.childList.length; i++){
      var thisNode = tempTree.nodeList[this.childList[i]];
      if (thisNode.name.Trim().indexOf(inName) >= 0){
        resNodes.length++;
        resNodes[resNodes.length-1] = thisNode;
      }
      //查找孩子的孩子
      if (thisNode.childList.length > 0){
        thisNode.searchChildrenNodeByName(resNodes, inName);
      }
    }
  }

  //查找匹配的孩子节点(私有)
  this.searchChildrenNodeByText = function(resNodes, inText){
    var tempTree = eval(this.treeName);
    for (var i=0; i<this.childList.length; i++){
      var thisNode = tempTree.nodeList[this.childList[i]];
      if (thisNode.showStr.Trim().indexOf(inText) >= 0){
        resNodes.length++;
        resNodes[resNodes.length-1] = thisNode;
      }
      //查找孩子的孩子
      if (thisNode.childList.length > 0){
        thisNode.searchChildrenNodeByText(resNodes, inText);
      }
    }
  }
}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -