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

📄 dhtmlxtree.js

📁 强大的动态功能树的生成文件
💻 JS
📖 第 1 页 / 共 5 页
字号:
 for(var i=0;i<l.length;i++)
{
 var temp=this._globalIdStorageFind(l[i]);
 if(!temp)continue;
 cMenu.setContextZone(temp.span,temp.id);
}
}
 
dhtmlXTreeObject.prototype.setItemStyle=function(itemId,style_string){
 var temp=this._globalIdStorageFind(itemId);
 if(!temp)return 0;
 
 if(!temp.span.style.cssText)
 temp.span.setAttribute("style",temp.span.getAttribute("style")+";"+style_string);
 else
 temp.span.style.cssText+=(";"+style_string);
}


 
 dhtmlXTreeObject.prototype.insertNewItem=function(parentId,itemId,itemText,itemActionHandler,image1,image2,image3,optionStr,childs){
 var parentObject=this._globalIdStorageFind(parentId);
 if(!parentObject)return(-1);
 var nodez=this._attachChildNode(parentObject,itemId,itemText,itemActionHandler,image1,image2,image3,optionStr,childs);
 if((!this.XMLloadingWarning)&&(this.childCalc))this._fixChildCountLabel(parentObject);
 return nodez;
};
 
 dhtmlXTreeObject.prototype.insertNewChild=function(parentId,itemId,itemText,itemActionHandler,image1,image2,image3,optionStr,childs){
 return this.insertNewItem(parentId,itemId,itemText,itemActionHandler,image1,image2,image3,optionStr,childs);
}
 
 dhtmlXTreeObject.prototype._parseXMLTree=function(dhtmlObject,node,parentId,level,xml_obj,start){
 if(!xml_obj)xml_obj=dhtmlObject.XMLLoader;
 dhtmlObject.skipLock=true;
 if(!dhtmlObject.parsCount)dhtmlObject.parsCount=1;else dhtmlObject.parsCount++;
 dhtmlObject.XMLloadingWarning=1;
 var nodeAskingCall="";
 if(!node){
 node=xml_obj.getXMLTopNode("tree");
 parentId=node.getAttribute("id");
 if(node.getAttribute("radio"))
 dhtmlObject.htmlNode._r_logic=true;
 dhtmlObject.parsingOn=parentId;
 dhtmlObject.parsedArray=new Array();
 dhtmlObject.setCheckList="";
}

 var temp=dhtmlObject._globalIdStorageFind(parentId);


 if((temp.childsCount)&&(!start)&&(!dhtmlObject._edsbps))
 var preNode=temp.childNodes[temp.childsCount-1];
 else
 var preNode=0;

 if(node.getAttribute("order"))
 dhtmlObject._reorderXMLBranch(node);

 var npl=0;

 for(var i=start||0;i<node.childNodes.length;i++)
{

 if((node.childNodes[i].nodeType==1)&&(node.childNodes[i].tagName == "item"))
{
 temp.XMLload=1;
 if((dhtmlObject._epgps)&&(dhtmlObject._epgpsC==npl)){
 this._setNextPageSign(temp,npl+1*(start||0),level,node);
 break;
}

 var nodx=node.childNodes[i];
 var name=nodx.getAttribute("text");
 var cId=nodx.getAttribute("id");
 if((!dhtmlObject.waitUpdateXML)||(dhtmlObject.waitUpdateXML.toString().search(dhtmlObject.dlmtr+cId+dhtmlObject.dlmtr)!=-1))
{
 var im0=nodx.getAttribute("im0");
 var im1=nodx.getAttribute("im1");
 var im2=nodx.getAttribute("im2");
 
 var aColor=nodx.getAttribute("aCol");
 var sColor=nodx.getAttribute("sCol");
 
 var chd=nodx.getAttribute("child");
 
 var imw=nodx.getAttribute("imwidth");
 var imh=nodx.getAttribute("imheight");

 var atop=nodx.getAttribute("top");
 var aradio=nodx.getAttribute("radio");
 var topoffset=nodx.getAttribute("topoffset");
 var aopen=nodx.getAttribute("open");
 var aselect=nodx.getAttribute("select");
 var acall=nodx.getAttribute("call");
 var achecked=nodx.getAttribute("checked");
 var closeable=nodx.getAttribute("closeable");
 var tooltip = nodx.getAttribute("tooltip");
 var nocheckbox = nodx.getAttribute("nocheckbox");
 var disheckbox = nodx.getAttribute("disabled");
 var style = nodx.getAttribute("style");

 var locked = nodx.getAttribute("locked");

 var zST="";
 if(aselect)zST+=",SELECT";
 if(atop)zST+=",TOP";
 
 if(acall)nodeAskingCall=cId;

 if(achecked==-1)zST+=",HCHECKED";
 else if(achecked)zST+=",CHECKED";
 if(aopen)zST+=",OPEN";

 if(dhtmlObject.waitUpdateXML)
 var newNode=dhtmlObject.updateItem(cId,name,im0,im1,im2,achecked);
 else
 var newNode=dhtmlObject._attachChildNode(temp,cId,name,0,im0,im1,im2,zST,chd,0,preNode);
 if(tooltip)newNode.span.parentNode.title=tooltip;
 if(style)
 if(newNode.span.style.cssText)
 newNode.span.style.cssText+=(";"+style);
 else
 newNode.span.setAttribute("style",newNode.span.getAttribute("style")+";"+style);

 if(aradio)newNode._r_logic=true;

 if(nocheckbox){
 newNode.span.parentNode.previousSibling.previousSibling.childNodes[0].style.display='none';
 newNode.nocheckbox=true;
}
 if(disheckbox){
 if(achecked!=null)dhtmlObject._setCheck(newNode,convertStringToBoolean(achecked));
 dhtmlObject.disableCheckbox(newNode,1);
}


 newNode._acc=chd||0;


 if(dhtmlObject.parserExtension)dhtmlObject.parserExtension._parseExtension(node.childNodes[i],dhtmlObject.parserExtension,cId,parentId);

 dhtmlObject.setItemColor(newNode,aColor,sColor);
 if(locked=="1")dhtmlObject._lockItem(newNode,true,true);

 if((imw)||(imh))dhtmlObject.setIconSize(imw,imh,newNode);
 if((closeable=="0")||(closeable=="1"))dhtmlObject.setItemCloseable(newNode,closeable);
 var zcall="";
 if(topoffset)this.setItemTopOffset(newNode,topoffset);
 if((!dhtmlObject.slowParse)||(dhtmlObject.waitUpdateXML))
{
 zcall=dhtmlObject._parseXMLTree(dhtmlObject,node.childNodes[i],cId,1,xml_obj);
}
 else{
 if(node.childNodes[i].childNodes.length>0){
 for(var a=0;a<node.childNodes[i].childNodes.length;a++)
 if(node.childNodes[i].childNodes[a].tagName=="item")
 newNode.unParsed=node.childNodes[i];
 else
 dhtmlObject.checkUserData(node.childNodes[i].childNodes[a],newNode.id);
}
}
 
 if(zcall!="")nodeAskingCall=zcall;

}
 else dhtmlObject._parseXMLTree(dhtmlObject,node.childNodes[i],cId,1,xml_obj);


 if((dhtmlObject._edsbps)&&(npl==dhtmlObject._edsbpsC)){
 dhtmlObject._distributedStart(node,i+1,parentId,level,temp.childsCount);
 break;
}
 npl++;
}
 else
 dhtmlObject.checkUserData(node.childNodes[i],parentId);
};

 if(!level){
 if(dhtmlObject.waitUpdateXML)
 dhtmlObject.waitUpdateXML="";
 else{
 var parsedNodeTop=dhtmlObject._globalIdStorageFind(dhtmlObject.parsingOn);

 for(var i=0;i<dhtmlObject.parsedArray.length;i++)
 parsedNodeTop.htmlNode.childNodes[0].appendChild(dhtmlObject.parsedArray[i]);

 dhtmlObject.lastLoadedXMLId=parentId;
 dhtmlObject.XMLloadingWarning=0;

 var chArr=dhtmlObject.setCheckList.split(dhtmlObject.dlmtr);
 for(var n=0;n<chArr.length;n++)
 if(chArr[n])dhtmlObject.setCheck(chArr[n],1);

 if((dhtmlObject.XMLsource)&&(dhtmlObject.tscheck)&&(dhtmlObject.smcheck)&&(temp.id!=dhtmlObject.rootId)){
 if(temp.checkstate===0)
 dhtmlObject._setSubChecked(0,temp);
 else if(temp.checkstate===1)
 dhtmlObject._setSubChecked(1,temp);
}


 
 if(navigator.appVersion.indexOf("MSIE")!=-1 && navigator.appVersion.indexOf("5.5")!=-1){
 window.setTimeout(function(){dhtmlObject._redrawFrom(dhtmlObject,null,start)},10);
}else{
 dhtmlObject._redrawFrom(dhtmlObject,null,start)
}

 if(nodeAskingCall!="")dhtmlObject.selectItem(nodeAskingCall,true);
}
}


 if(dhtmlObject.parsCount==1){
 if((dhtmlObject.slowParse)&&(dhtmlObject.parsingOn==dhtmlObject.rootId))
{
 
 if(!_isOpera)
 var nodelist=xml_obj.doXPath("//item[@open]",xml_obj.xmlDoc.responseXML);
 else{
 var pnodelist=xml_obj.xmlDoc.responseXML.getElementsByTagName("item");
 var nodelist=new Array();
 for(var i=0;i<pnodelist.length;i++)
 if(pnodelist[i].getAttribute("open"))
 nodelist[nodelist.length]=pnodelist[i];

}

 for(var i=0;i<nodelist.length;i++)
 dhtmlObject.openItem(nodelist[i].getAttribute("id"));


}

 dhtmlObject.parsingOn=null;
 if((!dhtmlObject._edsbps)||(!dhtmlObject._edsbpsA.length)){
 if(dhtmlObject.onXLE)
 window.setTimeout(function(){dhtmlObject.onXLE(dhtmlObject,parentId)},1);
 dhtmlObject.xmlstate=0;
}
 dhtmlObject.skipLock=false;
}
 dhtmlObject.parsCount--;
 if(dhtmlObject._edsbps)window.setTimeout(function(){dhtmlObject._distributedStep(parentId);},dhtmlObject._edsbpsD);

 if((dhtmlObject._epgps)&&(start))
 this._setPrevPageSign(temp,(start||0),level,node);

 return nodeAskingCall;
};


 dhtmlXTreeObject.prototype.checkUserData=function(node,parentId){
 if((node.nodeType==1)&&(node.tagName == "userdata"))
{
 var name=node.getAttribute("name");
 if((name)&&(node.childNodes[0]))
 if((!this.waitUpdateXML)||(this.waitUpdateXML.toString().search(this.dlmtr+parentId+this.dlmtr)!=-1))
 this.setUserData(parentId,name,node.childNodes[0].data);
}
}


 
 dhtmlXTreeObject.prototype.showItemSign=function(itemId,state){
 var temp=this._globalIdStorageFind(itemId);
 if(!temp)return 0;

 var z=temp.span.parentNode.previousSibling.previousSibling.previousSibling;
 if(!convertStringToBoolean(state)){
 this._openItem(temp)
 temp.closeble=false;
 temp.wsign=true;
}
 else
{
 temp.closeble=true;
 temp.wsign=false;
}
 this._correctPlus(temp);
}
 
 
 dhtmlXTreeObject.prototype.showItemCheckbox=function(itemId,state){
 var temp=this._globalIdStorageFind(itemId,0,1);
 if(!temp)return 0;
 temp.nocheckbox=!convertStringToBoolean(state);
 temp.span.parentNode.previousSibling.previousSibling.childNodes[0].style.display=(!temp.nocheckbox)?"":"none";
}

 
 dhtmlXTreeObject.prototype._getChildCounterValue=function(itemId){
 var temp=this._globalIdStorageFind(itemId);
 if(!temp)return 0;
 if((temp.unParsed)||((!temp.XMLload)&&(this.XMLsource)))
 return temp._acc
 switch(this.childCalc)
{
 case 1: return temp.childsCount;break;
 case 2: return this._getLeafCount(temp);break;
 case 3: return temp._acc;break;
 case 4: return temp._acc;break;
}
}
 
 dhtmlXTreeObject.prototype._redrawFrom=function(dhtmlObject,itemObject,start,visMode){
 if(!itemObject){
 var tempx=dhtmlObject._globalIdStorageFind(dhtmlObject.lastLoadedXMLId);
 dhtmlObject.lastLoadedXMLId=-1;
 if(!tempx)return 0;
}
 else tempx=itemObject;
 var acc=0;

 for(var i=(start?start-1:0);i<tempx.childsCount;i++)
{
 if((!itemObject)||(visMode==1))tempx.childNodes[i].htmlNode.parentNode.parentNode.style.display="";
 if(tempx.childNodes[i].openMe==1)
{
 this._openItem(tempx.childNodes[i]);
 tempx.childNodes[i].openMe=0;
}

 dhtmlObject._redrawFrom(dhtmlObject,tempx.childNodes[i]);

 if(this.childCalc!=null){

 if((tempx.childNodes[i].unParsed)||((!tempx.childNodes[i].XMLload)&&(this.XMLsource)))
{

 if(tempx.childNodes[i]._acc)
 tempx.childNodes[i].span.innerHTML=tempx.childNodes[i].label+this.htmlcA+tempx.childNodes[i]._acc+this.htmlcB;
 else
 tempx.childNodes[i].span.innerHTML=tempx.childNodes[i].label;
}
 if((tempx.childNodes[i].childNodes.length)&&(this.childCalc))
{
 if(this.childCalc==1)
{
 tempx.childNodes[i].span.innerHTML=tempx.childNodes[i].label+this.htmlcA+tempx.childNodes[i].childsCount+this.htmlcB;
}
 if(this.childCalc==2)
{
 var zCount=tempx.childNodes[i].childsCount-(tempx.childNodes[i].pureChilds||0);
 if(zCount)
 tempx.childNodes[i].span.innerHTML=tempx.childNodes[i].label+this.htmlcA+zCount+this.htmlcB;
 if(tempx.pureChilds)tempx.pureChilds++;else tempx.pureChilds=1;
}
 if(this.childCalc==3)
{
 tempx.childNodes[i].span.innerHTML=tempx.childNodes[i].label+this.htmlcA+tempx.childNodes[i]._acc+this.htmlcB;
}
 if(this.childCalc==4)
{
 var zCount=tempx.childNodes[i]._acc;
 if(zCount)
 tempx.childNodes[i].span.innerHTML=tempx.childNodes[i].label+this.htmlcA+zCount+this.htmlcB;
}
}
 else if(this.childCalc==4){
 acc++;
}
 
 acc+=tempx.childNodes[i]._acc;
 
 if(this.childCalc==3){
 acc++;
}

}

 
 
};

 if((!tempx.unParsed)&&((tempx.XMLload)||(!this.XMLsource)))
 tempx._acc=acc;
 dhtmlObject._correctLine(tempx);
 dhtmlObject._correctPlus(tempx);
 if((this.childCalc)&&(!itemObject))dhtmlObject._fixChildCountLabel(tempx);
};

 
 dhtmlXTreeObject.prototype._createSelf=function(){
 var div=document.createElement('div');
 div.className="containerTableStyle";
 div.style.width=this.width;
 div.style.height=this.height;
 this.parentObject.appendChild(div);
 return div;
};

 
 dhtmlXTreeObject.prototype._xcloseAll=function(itemObject)
{
 if(itemObject.unParsed)return;
 if(this.rootId!=itemObject.id){
 var Nodes=itemObject.htmlNode.childNodes[0].childNodes;
 var Count=Nodes.length;

 for(var i=1;i<Count;i++)
 Nodes[i].style.display="none";

 this._correctPlus(itemObject);
}

 for(var i=0;i<itemObject.childsCount;i++)
 if(itemObject.childNodes[i].childsCount)
 this._xcloseAll(itemObject.childNodes[i]);
};
 
 dhtmlXTreeObject.prototype._xopenAll=function(itemObject)
{
 this._HideShow(itemObject,2);
 for(var i=0;i<itemObject.childsCount;i++)
 this._xopenAll(itemObject.childNodes[i]);
};
 
 dhtmlXTreeObject.prototype._correctPlus=function(itemObject){
 var imsrc=itemObject.htmlNode.childNodes[0].childNodes[0].childNodes[0].lastChild;
 var imsrc2=itemObject.htmlNode.childNodes[0].childNodes[0].childNodes[2].childNodes[0];

 var workArray=this.lineArray;
 if((this.XMLsource)&&(!itemObject.XMLload))
{
 var workArray=this.plusArray;
 imsrc2.src=this.imPath+itemObject.images[2];
 if(this._txtimg)return(imsrc.innerHTML="[+]");
}
 else
 if((itemObject.childsCount)||(itemObject.unParsed))
{
 if((itemObject.htmlNode.childNodes[0].childNodes[1])&&(itemObject.htmlNode.childNodes[0].childNodes[1].style.display!="none"))
{
 if(!itemObject.wsign)var workArray=this.minusArray;
 imsrc2.src=this.imPath+itemObject.images[1];
 if(this._txtimg)return(imsrc.innerHTML="[-]");
}
 else
{
 if(!itemObject.wsign)var workArray=this.plusArray;
 imsrc2.src=this.imPath+itemObject.images[2];
 if(this._txtimg)return(imsrc.innerHTML="[+]");
}
}
 else
{
 imsrc2.src=this.imPath+itemObject.images[0];
}


 var tempNum=2;
 if(!itemObject.treeNod.treeLinesOn)imsrc.src=this.imPath+workArray[3];
 else{
 if(itemObject.parentObject)tempNum=this._getCountStatus(itemObject.id,itemObject.parentObject);
 imsrc.src=this.imPath+workArray[tempNum];
}
};

 
 dhtmlXTreeObject.prototype._correctLine=function(itemObject){
 var sNode=itemObject.parentObject;
 if(sNode)
 if((this._getLineStatus(itemObject.id,sNode)==0)||(!this.treeLinesOn))
 for(var i=1;i<=itemObject.childsCount;i++)
{
 itemObject.htmlNode.childNodes[0].childNodes[i].childNodes[0].style.backgroundImage="";
 itemObject.htmlNode.childNodes[0].childNodes[i].childNodes[0].style.backgroundRepeat="";
}
 else
 for(var i=1;i<=itemObject.childsCount;i++)
{
 itemObject.htmlNode.childNodes[0].childNodes[i].childNodes[0].style.backgroundImage="url("+this.imPath+this.lineArray[5]+")";
 itemObject.htmlNode.childNodes[0].childNodes[i].childNodes[0].style.backgroundRepeat="repeat-y";
}
};
 
 dhtmlXTreeObject.prototype._getCountStatus=function(itemId,itemObject){

 if(itemObject.childsCount<=1){if(itemObject.id==this.rootId)return 4;else return 0;}

 if(itemObject.childNodes[0].id==itemId)if(!itemObject.id)return 2;else return 1;

⌨️ 快捷键说明

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