一个以javascript+xml的树型列表

80酷酷网    80kuku.com

  xml这是在www.java2s.com网站下载的一个以Javascript+xml的树型列表,这个列表界面非常的漂亮,但是由于里面内容比较复杂,而现在项目需要用到这个列表,我到现在还没有摸清怎么在里面让点击一个树型的项目转到别的网页里面去,希望有兴趣的朋友一起研究一下。
部分代码如下: 
 <script> 
  
function dtmlXMLLoaderObject(funcObject,dhtmlObject){ 
 this.xmlDoc=""; 
 this.onloadAction=funcObject||null; 
 this.mainObject=dhtmlObject||null; 
 return this; 
}; 
  
 dtmlXMLLoaderObject.prototype.waitLoadFunction=function(dhtmlObject){ 
 this.check=function(){ 
 if(!dhtmlObject.xmlDoc.readyState)dhtmlObject.onloadAction(dhtmlObject.mainObject); 
 else{ 
 if(dhtmlObject.xmlDoc.readyState != 4)return false; 
 else dhtmlObject.onloadAction(dhtmlObject.mainObject);} 
}; 
 return this.check; 
}; 
  
  
 dtmlXMLLoaderObject.prototype.getXMLTopNode=function(tagName){ 
 if(this.xmlDoc.responseXML){var temp=this.xmlDoc.responseXML.getElementsByTagName(tagName);
var z=temp[0];} 
 else var z=this.xmlDoc.documentElement; 
 if(z)return z; 
 alert("Incorrect XML"); 
 return document.createElement("DIV"); 
}; 
  
  
 dtmlXMLLoaderObject.prototype.loadXMLString=function(xmlString){ 
 try  

 var parser = new DOMParser(); 
 this.xmlDoc = parser.parseFromString(xmlString,"text/xml"); 

 catch(e){ 
 this.xmlDoc = new ActiveXObject("Microsoft.XMLDOM"); 
 this.xmlDoc.loadXML(xmlString); 

 this.onloadAction(this.mainObject); 

 dtmlXMLLoaderObject.prototype.loadXML=function(filePath){ 
 try  

 this.xmlDoc = new XMLHttpRequest(); 
 this.xmlDoc.open("GET",filePath,true); 
 this.xmlDoc.onreadystatechange=new this.waitLoadFunction(this); 
 this.xmlDoc.send(null); 

 catch(e){ 
 if(document.implementation && document.implementation.createDocument) 

 this.xmlDoc = document.implementation.createDocument("","",null); 
 this.xmlDoc.onload = new this.waitLoadFunction(this); 

 else 

 this.xmlDoc = new ActiveXObject("Microsoft.XMLDOM"); 
 this.xmlDoc.async="true"; 
 this.xmlDoc.onreadystatechange=new this.waitLoadFunction(this); 

 this.xmlDoc.load(filePath); 

}; 
  
  
function callerFunction(funcObject,dhtmlObject){ 
 this.handler=function(e){ 
 if(!e)e=event; 
 funcObject(e,dhtmlObject); 
 return true; 
}; 
 return this.handler; 
}; 

function getAbsoluteLeft(htmlObject){ 
 var xPos = htmlObject.offsetLeft; 
 var temp = htmlObject.offsetParent; 


 while(temp != null){ 
 xPos+= temp.offsetLeft; 
 temp = temp.offsetParent; 

 return xPos; 

  
function getAbsoluteTop(htmlObject){ 
 var yPos = htmlObject.offsetTop; 
 var temp = htmlObject.offsetParent; 
 while(temp != null){ 
 yPos+= temp.offsetTop; 
 temp = temp.offsetParent; 

 return yPos; 

  
  
  
function convertStringToBoolean(inputString){if(typeof(inputString)=="string")inputString=
inputString.toLowerCase(); 
 switch(inputString){ 
 case "1": 
 case "true": 
 case "yes": 
 case "y": 
 case 1:  
 case true:  
 return true; 
 break; 
 default: return false; 



function getUrlSymbol(str){ 
 if(str.indexOf("?")!=-1) 
 return "&" 
 else 
 return "?" 

  
  
function dhtmlDragAndDropObject(){ 
 this.lastLanding=0; 
 this.dragNode=0; 
 this.dragStartNode=0; 
 this.dragStartObject=0; 
 this.tempDOMU=null; 
 this.tempDOMM=null; 
 this.waitDrag=0; 
 if(window.dhtmlDragAndDrop)return window.dhtmlDragAndDrop; 
 window.dhtmlDragAndDrop=this; 
 return this; 
}; 
  
 dhtmlDragAndDropObject.prototype.removeDraggableItem=function(htmlNode){ 
 htmlNode.onmousedown=null; 
 htmlNode.dragStarter=null; 
 htmlNode.dragLanding=null; 

 dhtmlDragAndDropObject.prototype.addDraggableItem=function(htmlNode,dhtmlObject){ 
 htmlNode.onmousedown=this.preCreateDragCopy; 
 htmlNode.dragStarter=dhtmlObject; 
 this.addDragLanding(htmlNode,dhtmlObject); 

 dhtmlDragAndDropObject.prototype.addDragLanding=function(htmlNode,dhtmlObject){ 
 htmlNode.dragLanding=dhtmlObject; 

 dhtmlDragAndDropObject.prototype.preCreateDragCopy=function(e) 

 if(window.dhtmlDragAndDrop.waitDrag){ 
 window.dhtmlDragAndDrop.waitDrag=0; 
 document.body.onmouseup=window.dhtmlDragAndDrop.tempDOMU; 
 document.body.onmousemove=window.dhtmlDragAndDrop.tempDOMM; 
 return; 

  
 window.dhtmlDragAndDrop.waitDrag=1; 
 window.dhtmlDragAndDrop.tempDOMU=document.body.onmouseup; 
 window.dhtmlDragAndDrop.tempDOMM=document.body.onmousemove; 
 window.dhtmlDragAndDrop.dragStartNode=this; 
 window.dhtmlDragAndDrop.dragStartObject=this.dragStarter; 
 document.body.onmouseup=window.dhtmlDragAndDrop.preCreateDragCopy; 


 document.body.onmousemove=window.dhtmlDragAndDrop.callDrag; 
}; 
 dhtmlDragAndDropObject.prototype.callDrag=function(e){ 
 if(!e)e=window.event; 
 dragger=window.dhtmlDragAndDrop; 
 if(!dragger.dragNode){ 
 dragger.dragNode=dragger.dragStartObject._createDragNode(dragger.dragStartNode); 
 document.body.appendChild(dragger.dragNode); 
 document.body.onmouseup=dragger.stopDrag; 
 dragger.waitDrag=0; 

 dragger.dragNode.style.left=e.clientX+15+document.body.scrollLeft;dragger.dragNode.style.top=
e.clientY+3+document.body.scrollTop; 
 if(!e.srcElement)var z=e.target;else z=e.srcElement; 
 dragger.checkLanding(z); 

 dhtmlDragAndDropObject.prototype.checkLanding=function(htmlObject){ 
 if(htmlObject.dragLanding){if(this.lastLanding)this.lastLanding.dragLanding._dragOut(this.lastLanding); 
 this.lastLanding=htmlObject;this.lastLanding=this.lastLanding.dragLanding._dragIn(this.lastLanding,this.dragStartNode);} 
 else{ 
 if(htmlObject.tagName!="BODY")this.checkLanding(htmlObject.parentNode); 
 else{if(this.lastLanding)this.lastLanding.dragLanding._dragOut(this.lastLanding);this.lastLanding=0;} 


 dhtmlDragAndDropObject.prototype.stopDrag=function(e){ 
 dragger=window.dhtmlDragAndDrop; 
 if(dragger.lastLanding)dragger.lastLanding.dragLanding._drag(dragger.dragStartNode,dragger.dragStartObject,dragger.lastLanding); 
 dragger.lastLanding=0; 
 dragger.dragNode.parentNode.removeChild(dragger.dragNode); 
 dragger.dragNode=0; 
 dragger.dragStartNode=0; 
 dragger.dragStartObject=0; 
 document.body.onmouseup=dragger.tempDOMU; 
 document.body.onmousemove=dragger.tempDOMM; 
 dragger.tempDOMU=null; 
 dragger.tempDOMM=null; 
 dragger.waitDrag=0; 

  
 </script> 
 <!-- dhtmlXTree.js --> 
 <script> 
  

function dhtmlXTreeObject(htmlObject,width,height,rootId){ 
 if(typeof(htmlObject)!="object") 
 this.parentObject=document.getElementById(htmlObject); 
 else 
 this.parentObject=htmlObject; 
 this.mytype="tree"; 
 this.width=width; 
 this.height=height; 
 this.rootId=rootId; 
  
 this.style_pointer="pointer"; 
 if(navigator.appName == ’Microsoft Internet Explorer’)this.style_pointer="hand"; 
  
 this.hfMode=0; 
 this.nodeCut=0; 
 this.XMLsource=0; 
 this.XMLloadingWarning=0; 
 this._globalIdStorage=new Array(); 
 this.globalNodeStorage=new Array(); 
 this._globalIdStorageSize=0; 
 this.treeLinesOn=true; 


 this.checkFuncHandler=0; 
 this.openFuncHandler=0; 
 this.dblclickFuncHandler=0; 
 this.tscheck=false; 
 this.timgen=true; 
  
 this.imPath="treeGfx/"; 
 this.checkArray=new Array("iconUnCheckAll.gif","iconCheckAll.gif","iconCheckGray.gif"); 
 this.lineArray=new Array("line2.gif","line3.gif","line4.gif","blank.gif","blank.gif"); 
 this.minusArray=new Array("minus2.gif","minus3.gif","minus4.gif","minus.gif","minus5.gif"); 
 this.plusArray=new Array("plus2.gif","plus3.gif","plus4.gif","plus.gif","plus5.gif"); 
 this.imageArray=new Array("leaf.gif","folderOpen.gif","folderClosed.gif"); 
 this.cutImg= new Array(0,0,0); 
 this.cutImage="but_cut.gif"; 
  
 this.dragger= new dhtmlDragAndDropObject(); 
 this.htmlNode=new dhtmlXTreeItemObject(this.rootId,"",0,this); 
 this.htmlNode.htmlNode.childNodes[0].childNodes[0].style.display="none"; 
 this.htmlNode.htmlNode.childNodes[0].childNodes[0].childNodes[0].className="hiddenRow"; 
 this.allTree=this._createSelf(); 
 this.allTree.appendChild(this.htmlNode.htmlNode); 
 this.allTree.onselectstart=new Function("return false;"); 
 this.XMLLoader=new dtmlXMLLoaderObject(this._parseXMLTree,this); 
  
 this.dragger.addDragLanding(this.allTree,this); 
 return this; 
}; 

function dhtmlXTreeItemObject(itemId,itemText,parentObject,treeObject,actionHandler,mode){ 
 this.htmlNode=""; 
 this.acolor=""; 
 this.scolor=""; 
 this.tr=0; 
 this.childsCount=0; 
 this.tempDOMM=0; 
 this.tempDOMU=0; 
 this.dragSpan=0; 
 this.dragMove=0; 
 this.span=0; 
 this.closeble=1; 
 this.childNodes=new Array(); 
 this.checkstate=0; 
 this.treeNod=treeObject; 
 this.label=itemText; 
 this.parentObject=parentObject; 
 this.actionHandler=actionHandler; 
 this.images=new Array(treeObject.imageArray[0],treeObject.imageArray[1],treeObject.imageArray[2]); 

 this.id=treeObject._globalIdStorageAdd(itemId,this); 
 if(this.treeNod.checkBoxOff)this.htmlNode=this.treeNod._createItem(1,this,mode); 
 else this.htmlNode=this.treeNod._createItem(0,this,mode); 
 this.htmlNode.objBelong=this; 
 return this; 
}; 
  
  
  
 dhtmlXTreeObject.prototype._globalIdStorageAdd=function(itemId,itemObject){ 
 if(this._globalIdStorageFind(itemId)){d=new Date();itemId=d.valueOf()+"_"+itemId;return this._globalI
dStorageAdd(itemId,itemObject);} 
 this._globalIdStorage[this._globalIdStorageSize]=itemId; 
 this.globalNodeStorage[this._globalIdStorageSize]=itemObject; 


 this._globalIdStorageSize++; 
 return itemId; 
}; 
  
 dhtmlXTreeObject.prototype._globalIdStorageSub=function(itemId){ 
 for(var i=0;i<this._globalIdStorageSize;i++) 
 if(this._globalIdStorage[i]==itemId) 

 this._globalIdStorage[i]=this._globalIdStorage[this._globalIdStorageSize-1]; 
 this.globalNodeStorage[i]=this.globalNodeStorage[this._globalIdStorageSize-1]; 
 this._globalIdStorageSize--; 
 this._globalIdStorage[this._globalIdStorageSize]=0; 
 this.globalNodeStorage[this._globalIdStorageSize]=0; 

}; 
  
  
 dhtmlXTreeObject.prototype._globalIdStorageFind=function(itemId){ 
 for(var i=0;i<this._globalIdStorageSize;i++) 
 if(this._globalIdStorage[i]==itemId) 
 return this.globalNodeStorage[i]; 
 return 0; 
}; 

  
  
 dhtmlXTreeObject.prototype._drawNewTr=function(htmlObject) 

 var tr =document.createElement(’tr’); 
 var td1=document.createElement(’td’); 
 var td2=document.createElement(’td’); 
 td1.appendChild(document.createTextNode("")); 
 td2.colSpan=3;td2.appendChild(htmlObject);tr.appendChild(td1);tr.appendChild(td2); 
 return tr; 
}; 
  
 dhtmlXTreeObject.prototype.loadXMLString=function(xmlString){this.XMLLoader.loadXMLString(xmlString);}; 
  
 dhtmlXTreeObject.prototype.loadXML=function(file){this.XMLLoader.loadXML(file);}; 
  
 dhtmlXTreeObject.prototype._attachChildNode=function(parentObject,itemId,itemText,itemActionHandler,image1,image2,image3,optionStr,childs,url,beforeNode){ 
 if(beforeNode)parentObject=beforeNode.parentObject; 
 if(((parentObject.XMLload==0)&&(this.XMLsource))&&(!this.XMLloadingWarning)) 

 parentObject.XMLload=1;this.loadXML(this.XMLsource+getUrlSymbol(this.XMLsource)+"itemId="+escape(parentObject.itemId)); 

  
 var Count=parentObject.childsCount; 
 var Nodes=parentObject.childNodes; 
  
 if((!itemActionHandler)&&(this.aFunc))itemActionHandler=this.aFunc; 
 Nodes[Count]=new dhtmlXTreeItemObject(itemId,itemText,parentObject,this,itemActionHandler,1); 
  
 if(image1)Nodes[Count].images[0]=image1; 
 if(image2)Nodes[Count].images[1]=image2; 
 if(image3)Nodes[Count].images[2]=image3; 
  
 parentObject.childsCount++; 
 var tr=this._drawNewTr(Nodes[Count].htmlNode); 
 if(this.XMLloadingWarning) 
 Nodes[Count].htmlNode.parentNode.parentNode.style.display="none"; 
  
 if(optionStr){ 
 var tempStr=optionStr.split(","); 
 for(var i=0;i<tempStr.length;i++) 



 switch(tempStr[i]) 

 case "TOP": if(parentObject.childsCount>1)beforeNode=parentObject.htmlNode.childNodes[0].childNodes[1].nodem.previousSibling;break; 

}; 
}; 
  
 if((beforeNode)&&(beforeNode.tr.nextSibling)) 
 parentObject.htmlNode.childNodes[0].insertBefore(tr,beforeNode.tr.nextSibling); 
 else 
 parentObject.htmlNode.childNodes[0].appendChild(tr); 
 if(this.XMLsource)if((childs)&&(childs!=0))Nodes[Count].XMLload=0;else Nodes[Count].XMLload=1; 
 Nodes[Count].tr=tr; 
 tr.nodem=Nodes[Count]; 
 if(parentObject.itemId==0) 
 tr.childNodes[0].className="hitemIddenRow"; 
  
 if(optionStr){ 
 var tempStr=optionStr.split(","); 
 for(var i=0;i<tempStr.length;i++) 

 switch(tempStr[i]) 

 case "SELECT": this.selectItem(itemId,false);break; 
 case "CALL": this.selectItem(itemId,true);break; 
 case "CHILD": Nodes[Count].XMLload=0;break; 
 case "CHECKED":  
 if(this.XMLloadingWarning) 
 this.setCheckList+=itemId; 
 else 
 this.setCheck(itemId,1); 
 break; 
 case "OPEN": Nodes[Count].openMe=1;break; 

}; 
}; 
 if(!this.XMLloadingWarning) 

 if(this._getOpenState(parentObject)<0) 
 this.openItem(parentObject.id); 
  
 if(beforeNode) 

 this._correctPlus(beforeNode); 
 this._correctLine(beforeNode); 

 this._correctPlus(parentObject); 
 this._correctLine(parentObject); 
 this._correctPlus(Nodes[Count]); 
 if(parentObject.childsCount>=2) 

 this._correctPlus(Nodes[parentObject.childsCount-2]); 
 this._correctLine(Nodes[parentObject.childsCount-2]); 

 if(parentObject.childsCount!=2)this._correctPlus(Nodes[0]); 
 if(this.tscheck)this._correctCheckStates(parentObject); 

  
 return Nodes[Count]; 
}; 

 dhtmlXTreeObject.prototype.insertNewItem=function(parentId,itemId,itemText,itemActionHandler,image1,image2,image3,optionStr,childs,url){ 
 var parentObject=this._globalIdStorageFind(parentId); 
 if(!parentObject)return(-1); 
 return this._attachChildNode(parentObject,itemId,itemText,itemActionHandler,image1,image2,image3,optionStr,childs,url); 
}; 
  
 dhtmlXTreeObject.prototype._parseXMLTree=function(dhtmlObject,node,parentId,level){ 
 dhtmlObject.XMLloadingWarning=1; 
 var nodeAskingCall=""; 
 if(!node){ 
 node=dhtmlObject.XMLLoader.getXMLTopNode("tree"); 
 parentId=node.getAttribute("id"); 


 dhtmlObject.setCheckList=""; 

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

 if((node.childNodes[i].nodeType==1)&&(node.childNodes[i].tagName == "item")) 

 var name=node.childNodes[i].getAttribute("text"); 
 var cId=node.childNodes[i].getAttribute("id"); 
  
 var im0=node.childNodes[i].getAttribute("im0"); 
 var im1=node.childNodes[i].getAttribute("im1"); 
 var im2=node.childNodes[i].getAttribute("im2"); 
  
 var aColor=node.childNodes[i].getAttribute("aCol"); 
 var sColor=node.childNodes[i].getAttribute("sCol"); 
  
 var chd=node.childNodes[i].getAttribute("child"); 
  
 var atop=node.childNodes[i].getAttribute("top"); 
 var aopen=node.childNodes[i].getAttribute("open"); 
 var aselect=node.childNodes[i].getAttribute("select"); 
 var acall=node.childNodes[i].getAttribute("call"); 
 var achecked=node.childNodes[i].getAttribute("checked"); 
 var closeable=node.childNodes[i].getAttribute("closeable"); 
 var url=node.childNodes[i].getAttribute("url"); 
 var zST=""; 
 if(aselect)zST+=",SELECT"; 
 if(atop)zST+=",TOP"; 
 if(acall)nodeAskingCall=cId; 
 if(achecked)zST+=",CHECKED"; 
 if((aopen)&&(aopen!="0"))zST+=",OPEN"; 
  
 var temp=dhtmlObject._globalIdStorageFind(parentId); 
 temp.XMLload=1; 
 dhtmlObject.insertNewItem(parentId,cId,name,0,im0,im1,im2,zST,chd,url); 
 if(dhtmlObject.parserExtension)dhtmlObject.parserExtension._parseExtension(node.childNodes[i],dhtmlObject.parserExtension,cId,parentId); 
 dhtmlObject.setItemColor(cId,aColor,sColor); 
 if((closeable=="0")||(closeable=="1"))dhtmlObject.setItemCloseable(cId,closeable); 
 var zcall=dhtmlObject._parseXMLTree(dhtmlObject,node.childNodes[i],cId,1); 
 if(zcall!="")nodeAskingCall=zcall; 

 else 
 if((node.childNodes[i].nodeType==1)&&(node.childNodes[i].tagName == "userdata")) 

 var name=node.childNodes[i].getAttribute("name"); 
 if((name)&&(node.childNodes[i].childNodes[0])){ 
 dhtmlObject.setUserData(parentId,name,node.childNodes[i].childNodes[0].data); 
}; 
}; 
}; 
 if(!level){ 
 dhtmlObject.lastLoadedXMLId=parentId; 
 dhtmlObject._redrawFrom(dhtmlObject); 
 dhtmlObject.XMLloadingWarning=0; 
 var chArr=dhtmlObject.setCheckList.split(","); 
 for(var n=0;n<chArr.length;n++) 
 if(chArr[n])dhtmlObject.setCheck(chArr[n],1); 
 if(nodeAskingCall!="")dhtmlObject.selectItem(nodeAskingCall,true); 



 return nodeAskingCall; 
}; 
  
  
 dhtmlXTreeObject.prototype._redrawFrom=function(dhtmlObject,itemObject){ 
 if(!itemObject){ 
 var tempx=dhtmlObject._globalIdStorageFind(dhtmlObject.lastLoadedXMLId); 
 dhtmlObject.lastLoadedXMLId=-1; 
 if(!tempx)return 0; 

 else tempx=itemObject; 
 for(var i=0;i<tempx.childsCount;i++) 

 if(!itemObject)tempx.childNodes[i].htmlNode.parentNode.parentNode.style.display=""; 
 if(tempx.childNodes[i].openMe==1) 
 for(var zy=0;zy<tempx.childNodes[i].childNodes.length;zy++) 
 tempx.childNodes[i].htmlNode.childNodes[0].childNodes[zy+1].style.display=""; 
 dhtmlObject._redrawFrom(dhtmlObject,tempx.childNodes[i]); 
 dhtmlObject._correctLine(tempx.childNodes[i]); 
 dhtmlObject._correctPlus(tempx.childNodes[i]); 
}; 
 dhtmlObject._correctLine(tempx); 
 dhtmlObject._correctPlus(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(this.rootId!=itemObject.id)this._HideShow(itemObject,1); 
 for(var i=0;i<itemObject.childsCount;i++) 
 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 workArray=this.lineArray; 
 if((this.XMLsource)&&(!itemObject.XMLload)) 

 var workArray=this.plusArray; 
 itemObject.htmlNode.childNodes[0].childNodes[0].childNodes[2].childNodes[0].src=this.imPath+itemO
bject.images[2]; 

 else 
try{ 
 if(itemObject.childsCount) 

 if(itemObject.htmlNode.childNodes[0].childNodes[1].style.display!="none") 

 var workArray=this.minusArray; 
 itemObject.htmlNode.childNodes[0].childNodes[0].childNodes[2].childNodes[0].src=this.imPath+itemO
bject.images[1]; 

 else 

 var workArray=this.plusArray; 
 itemObject.htmlNode.childNodes[0].childNodes[0].childNodes[2].childNodes[0].src=this.imPath+itemO
bject.images[2]; 


 else 

 itemObject.htmlNode.childNodes[0].childNodes[0].childNodes[2].childNodes[0].src=this.imPath+itemO


bject.images[0]; 


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

}; 
  
 dhtmlXTreeObject.prototype._correctLine=function(itemObject){ 
 var sNode=itemObject.parentObject; 
 try{ 
 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+"line1.gif)"; 
 itemObject.htmlNode.childNodes[0].childNodes[i].childNodes[0].style.backgroundRepeat="repeat-y"; 


 catch(e){}; 
}; 
  
 dhtmlXTreeObject.prototype._getCountStatus=function(itemId,itemObject){ 
 try{ 
 if(itemObject.childsCount<=1){if(itemObject.id==this.rootId)return 4;else return 0;} 
  
 if(itemObject.htmlNode.childNodes[0].childNodes[1].nodem.id==itemId)if(!itemObject.id)return 2;else return 1; 
 if(itemObject.htmlNode.childNodes[0].childNodes[itemObject.childsCount].nodem.id==itemId)return 0; 

 catch(e){}; 
 return 1; 
}; 
  
 dhtmlXTreeObject.prototype._getLineStatus =function(itemId,itemObject){ 
 if(itemObject.htmlNode.childNodes[0].childNodes[itemObject.childsCount].nodem.id==itemId)return 0; 
 return 1; 


 dhtmlXTreeObject.prototype._HideShow=function(itemObject,mode){ 
 if(((this.XMLsource)&&(!itemObject.XMLload))&&(!mode)){itemObject.XMLload=1;this.loadXML(this.XMLsource+getUrlSymbol(this.XMLsource)+"id="+escape(itemObject.id));return;}; 
 var Nodes=itemObject.htmlNode.childNodes[0].childNodes;var Count=Nodes.length; 
 if(Count>1){ 
 if(((Nodes[1].style.display!="none")||(mode==1))&&(mode!=2))node
 for(var i=1;i<Count;i++) 
 Nodes[i].style.display=nodestyle; 

 this._correctPlus(itemObject); 

  
 dhtmlXTreeObject.prototype._getOpenState=function(itemObject){ 


 var z=itemObject.htmlNode.childNodes[0].childNodes; 
 if(z.length<=1)return 0; 
 if(z[1].style.display!="none")return 1; 
 else return -1; 


  
  
 dhtmlXTreeObject.prototype.onRowClick2=function(){ 
 if(this.parentObject.treeNod.dblclickFuncHandler)if(!this.parentObject.treeNod.dblclickFuncHandler(this.parentObject.id))return 0; 
 if((this.parentObject.closeble)&&(this.parentObject.closeble!="0")) 
 this.parentObject.treeNod._HideShow(this.parentObject); 
 else 
 this.parentObject.treeNod._HideShow(this.parentObject,2); 
}; 
  
 dhtmlXTreeObject.prototype.onRowClick=function(){ 
 if(this.parentObject.treeNod.openFuncHandler)if(!this.parentObject.treeNod.openFuncHandler(this.parentObject.id,this.parentObject.treeNod._getOpenState(this.parentObject)))return 0; 
 if((this.parentObject.closeble)&&(this.parentObject.closeble!="0")) 
 this.parentObject.treeNod._HideShow(this.parentObject); 
 else 
 this.parentObject.treeNod._HideShow(this.parentObject,2); 
}; 
  
  
 dhtmlXTreeObject.prototype.onRowSelect=function(e,htmlObject,mode){ 
 if(!htmlObject)htmlObject=this; 
 htmlObject.childNodes[0].className="selectedTreeRow"; 
 if(htmlObject.parentObject.scolor)htmlObject.parentObject.span.style.color=htmlObject.parentObject.scolor; 
 if((htmlObject.parentObject.treeNod.lastSelected)&&(htmlObject.parentObject.treeNod.lastSelected!=
htmlObject)) 

 htmlObject.parentObject.treeNod.lastSelected.childNodes[0].className="standartTreeRow"; 
 if(htmlObject.parentObject.treeNod.lastSelected.parentObject.acolor)htmlObject.parentObject.treeNod.lastSelected.parentObject.span.style.color=htmlObject.parentObject.treeNod.
lastSelected.parentObject.acolor; 

 htmlObject.parentObject.treeNod.lastSelected=htmlObject; 
 if(!mode){if(htmlObject.parentObject.actionHandler)htmlObject.parentObject.actionHandler(htmlObject.parentObject.id);} 
}; 
  


  
dhtmlXTreeObject.prototype._correctCheckStates=function(dhtmlObject){ 
 if(!this.tscheck)return; 
 if(dhtmlObject.id==this.rootId)return; 
 var act=dhtmlObject.htmlNode.childNodes[0].childNodes; 
 var flag1=0;var flag2=0; 
 if(act.length<2)return; 
 for(var i=1;i<act.length;i++) 
 if(act[i].nodem.checkstate==0)flag1=1; 
 else if(act[i].nodem.checkstate==1)flag2=1; 
 else{flag1=1;flag2=1;break;} 
 if((flag1)&&(flag2))this._setCheck(dhtmlObject,"notsure"); 
 else if(flag1)this._setCheck(dhtmlObject,false); 
 else this._setCheck(dhtmlObject,true); 
  


 this._correctCheckStates(dhtmlObject.parentObject); 

  
  
 dhtmlXTreeObject.prototype.onCheckBoxClick=function(e){ 
 if(this.treeNod.tscheck) 
 if(this.parentObject.checkstate==1)this.treeNod._setSubChecked(false,this.parentObject); 
 else this.treeNod._setSubChecked(true,this.parentObject); 
 else 
 if(this.parentObject.checkstate==1)this.treeNod._setCheck(this.parentObject,false); 
 else this.treeNod._setCheck(this.parentObject,true); 
 this.treeNod._correctCheckStates(this.parentObject.parentObject); 
 if(this.treeNod.checkFuncHandler)return(this.treeNod.checkFuncHandler(this.parentObject.id,this.parentObject.checkstate)); 
 else return true; 
}; 
  
 dhtmlXTreeObject.prototype._createItem=function(acheck,itemObject,mode){ 
 var table=document.createElement(’table’); 
 table.cellSpacing=0;table.cellPadding=0; 
 table.border=0; 
 if(this.hfMode)table.style.tableLayout="fixed"; 
 table.style.margin=0;table.style.padding=0; 
  
 var tbody=document.createElement(’tbody’); 
 var tr=document.createElement(’tr’); 
 var td1=document.createElement(’td’); 
 td1.className="standartTreeImage"; 
 var img0=document.createElement("img"); 
 img0.border="0";td1.appendChild(img0);img0.style.padding=0; 
  
 var td11=document.createElement(’td’); 
 var inp=document.createElement("img");inp.checked=0;inp.src=this.imPath+this.checkArray[0];inp.style.width="16px";inp.style.height="16px"; 
 if(!acheck)inp.style.display="none"; 
 td11.appendChild(inp); 
 td11.width="16px"; 
 inp.onclick=this.onCheckBoxClick; 
 inp.treeNod=this; 
 inp.parentObject=itemObject; 
 var td12=document.createElement(’td’); 
 td12.className="standartTreeImage"; 
 var img=document.createElement("img");img.onmousedown=this._preventNsDrag; 
 img.border="0"; 
 if(!mode)img.src=this.imPath+this.imageArray[0]; 
 td12.appendChild(img);img.style.padding=0;img.style.margin=0; 
 if(this.timgen) 
{img.style.width="18px";img.style.height="18px";} 
 else 
{img.style.width="0px";img.style.height="0px";} 
</script>



分享到
  • 微信分享
  • 新浪微博
  • QQ好友
  • QQ空间
点击: