treeview_support.js

来自「精美的AJAX树形菜单」· JavaScript 代码 · 共 773 行 · 第 1/2 页

JS
773
字号

	return false;
	}
;
function ComponentArt_StartNodeDrag(qzim,qzgx){
	ComponentArt_CancelEvent(qzim);
	if(document.all){
		if(qzim.button==2){
			return true;
			};
		}
	else{
		if(qzim.which==3){
			return true;
			};
		};
	if(qze.SelectedNode&&qze.SelectedNode.IsEditing){
		return false;
		};
	var qzbc=qzgx;
	while(qzbc.nodeName!='TD'){
		qzbc=qzbc.parentNode;
		}
	;
	if(qzbc.onmouseout){
		qzbc.onmouseout();
		};
	var qqSp=qzbc;
	while(qqSp.nodeName!='TABLE'){
		qqSp=qqSp.parentNode;
		}
	;
	if(qqSp.onmouseout){
		qqSp.onmouseout();
		};
	qzdt=qqSp;
	qqQm=document.getElementById(qze.TreeViewID+"_div");
	qqQm.onmousemove=null;
	qzod=document.all?event.offsetX:qzim.pageX-qzhg(qzgx);
	qzoc=document.all?event.offsetY:qzim.pageY-qzfb(qzgx);
	qzog=document.all?event.clientX+document.body.scrollLeft:qzim.pageX;
	qzof=document.all?event.clientY+document.body.scrollTop:qzim.pageY;
	document.onmousemove=qzAaq;
	document.onmouseup=qzAap;
	qzgn=false;
	qqQh=null;
	qqSy();
	return false;
	}
;
function qztx(qzAfv,qqQy,qzAfu,qqSf){
	var qzcb=document.getElementById(qzAfv.ParentTreeView.TreeViewID+'_MoveEvents');
	if(!qzcb){
		return;
		};
	var qzzv=qzAfv.PostBackID+' '+qqQy.ControlId+' '+(qzAfu?qzAfu.PostBackID:'')+' '+qqSf+';';
	qzcb.value+=qzzv;
	}
;
var qqQq,qqQp,qqQk=0,qqQg=0;
function ComponentArt_CalcDragTarget(){
	qqQl=qqSu(qqQn,qqQo);

	if(qqQl){
		if(qqQl!=qqQr){
			qqQm=document.getElementById(qqQl.TreeViewID+'_div');
			qqQm.onmousemove=null;
			qqQr=qqQl;
			};
		var y=qqQo+qqQm.scrollTop;
		if(y!=qqQg){
			qzop(qqQl,qqQl.Nodes(),y);
			qqQg=y;
			};
		}
	else{
		qqQh=null;
		qqQj=null;
		qqQl=qze;
		};

	if(qqQl&&qqQl.DragHoverExpandDelay>=0&&qqQj&&qqQq&&qqQj.StorageIndex==qqQq.StorageIndex){
		if(qqQk*ComponentArt_TreeView_CalcTargetIntervalDelay>=qqQl.DragHoverExpandDelay){
			if(qqQj.ChildIndices.length>0&&!qqQj.Expanded){
				qqQj.Expand();
				};
			}
		else {
			qqQk++;
			};
		}
	else{
		qqQk=0;
		qqQq=qqQj;
		};

	var qqZf=qqQi!=qqQp,qqSq=qqQh!=qqQl.qzai;
	if(qqZf||qqSq){
		qqSt();
		if(qqQl&&qqQi){
			qqSv(qqQl,qqQj,qqQh);
			};
		if(qqSq||qqQi){
			if(qqQl.qzai&&qqQl.qzai.onmouseout){
				qqQl.qzai.onmouseout();
				};
			if(qqQl.qzfj&&qqQl.qzfj.onmouseout){
				qqQl.qzfj.onmouseout();
				};
			};
		if(qqQl&&qqSq&&qqQh&&!qqQi&&qqQl.DropChildEnabled){
			if(qqQh.onmouseover){
				qqQh.onmouseover();
				};
			qqQl.qzai=qqQh;
			qqQl.qzfj=document.getElementById(qqQh.id+'_cell');
			if(qqQl.qzfj.onmouseover){
				qqQl.qzfj.onmouseover();
				};
			};
		};
	}
;
function qqSu(x,y){
	for(var qzba=0;qzba<qqSr.length;qzba++){
		if(x>=qqSr[qzba].X&&x<=qqSr[qzba].X+qqSr[qzba].Width&&y>=qqSr[qzba].Y&&y<=qqSr[qzba].Y+qqSr[qzba].Height){
			return qqSr[qzba].qzt;
			};
		}
	;
	return null;
	}
;
function qzop(qzt,qzie,y,lastHigher,lastHigherDom){
	var qqSl=lastHigher,qqSm=lastHigherDom;
	for(var qzba=0;qzba<qzie.length;qzba++){
		var qzm=qzie[qzba],qzxe=document.getElementById(qzt.TreeViewID+'_item_'+qzm.StorageIndex);
		if(!qzxe){
			continue;
			};
		var qzAnk=qzfb(qzxe);
		if(qzAnk>y){
			if(qqSl){
				if(qqSl!=qzm.ParentNode&&qqSl.ChildIndices.length>0&&qqSl.Expanded){
					qzop(qzt,qqSl.Nodes(),y,qqSl,qqSm);
					return;
					}
				else{
					qqQi=(qzt.DropSiblingEnabled&&((qqSm&&qzfb(qqSm)+qqSm.offsetHeight-5<y)||!qzt.DropChildEnabled));
					qqQj=qqSl;
					qqQh=qqSm;
					return;
					};
				}
			else{
				qqQj=null;
				qqQh=null;
				};
			}
		else{
			qqSl=qzm;
			qqSm=qzxe;
			};
		}
	;

	if(qqSl&&qqSl.ChildIndices.length>0&&qqSl.Expanded){
		qzop(qzt,qqSl.Nodes(),y,qqSl,qqSm);
		}
	else{
		qqQi=(qzt.DropSiblingEnabled&&qqSm&&qzfb(qqSm)+qqSm.offsetHeight-5<y);
		qqQj=qqSl;
		qqQh=qqSm;
		if(!qqQh&&qzt.DropRootEnabled){
			qqQi=true;
			};
		};
	}
;
var qqQs;
function qqSv(qzt,qzsz,qqSk){
	if(!qqQs){
		qqQs=document.createElement('DIV');
		qqQs.style.position='absolute';
		qqQs.style.visibility='hidden';
		qqQs.style.overflow='hidden';
		qqQs.style.zIndex=167;
		document.body.appendChild(qqQs);
		};
	if(qzt.DropSiblingCssClass&&qzt.DropSiblingCssClass!=''){
		qqQs.className=qzt.DropSiblingCssClass;
		qqQs.style.height='';
		qqQs.style.backgroundColor='';
		}
	else{
		qqQs.className='';
		qqQs.style.height=1;
		qqQs.style.backgroundColor='#000000';
		};
	if(qzsz&&qqSk){
		var qzgo=document.getElementById(qqSk.id+'_cell');
		qqQs.style.width=qzgo.offsetWidth+qzsz.ImageWidth+qzsz.LabelPadding;
		qqQs.style.top=qzfb(qzgo)+qzgo.offsetHeight-qqQm.scrollTop+1;
		qqQs.style.left=qzhg(qzgo)-qzsz.ImageWidth-qzsz.LabelPadding;
		}
	else{
		qzsz=qzt.qzo(qzt.GetFirstRootNodeIndex());
		var qzgo=document.getElementById(qzt.TreeViewID+'_item_'+qzsz.StorageIndex+'_cell');
		qqQs.style.width=qzgo.offsetWidth+qzsz.ImageWidth+qzsz.LabelPadding;
		qqQs.style.top=qzfb(qzgo)-qqQm.scrollTop;
		qqQs.style.left=qzhg(qzgo)-qzsz.ImageWidth-qzsz.LabelPadding;
		};

	qqQs.style.visibility='visible';
	}
;
function qqSt(){
	if(qqQs){
		qqQs.style.visibility='hidden';
		};
	}
;
function ComponentArt_CheckEnterPress(qzim,qzob){
	var qzAbo=document.all?event.keyCode:qzim.which;

	if(qzAbo==13){
		ComponentArt_SetNodeLabel(qzob);
		return false;
		}
	else if(qzAbo==27){
		qzoa(qzob);
		return false;
		}
	else {
		return true;
		};
	}
;
function qzoa(qzob){
	if(document.all){
		event.cancelBubble=true;
		};
	var qzfn=document.getElementById(qzob);
	qzfn.innerHTML=qze.SelectedNode.qzll();
	qze.SelectedNode.IsEditing=false;
	qzfn.className=qze.SelectedNode.qzao(false,true,false);
	qzfn.IsEditing=false;
	document.onkeydown=ComponentArt_ProcessKeyPress;
	return false;
	}
;
function ComponentArt_SetNodeLabel(qzob){
	ComponentArt_CancelEvent();
	if(!qze.SelectedNode.IsEditing){
		return false;
		};
	qze.SelectedNode.IsEditing=false;
	var qzfn=document.getElementById(qzob),qzAes=qzfn.firstChild.value;
	if(qze.ClientSideOnNodeRename){
		qze.SelectedNode.ResolveAncestors();
		if(!qze.ClientSideOnNodeRename(qze.SelectedNode,qzAes)){
			qzoa(qzob);
			qzfn.IsEditing=false;
			return false;
			};
		};
	if(qze.SelectedNode.AutoPostBackOnRename){
		__doPostBack(qze.ControlId,'LABEL '+qze.SelectedNode.PostBackID+' '+escape(qzAes));
		return false;
		};
	qzfn.className=qze.SelectedNode.qzao(false,true,false);
	qzfn.IsEditing=false;
	qze.SelectedNode.Text=qzAes;
	qze.SelectedNode.SaveState();
	qzfn.innerHTML=qze.SelectedNode.qzll();
	document.onkeydown=ComponentArt_ProcessKeyPress;
	return false;
	}
;
function qzAho(qzfn){
	var qzob=qzfn.id,qzAgw=qze.SelectedNode.Text;
	qzfn.innerHTML="<input size=\""+Math.max(7,
																					 qzAgw.length+3)+"\" maxlength=\"120\" value=\""+qzAgw
									 +"\" type=\"text\" onblur=\"ComponentArt_SetNodeLabel('"+qzob
									 +"');\" onsubmit=\"return false;\" onchange=\"ComponentArt_SetNodeLabel('"+qzob
									 +"');\" onkeypress=\"ComponentArt_CheckEnterPress(event, '"+qzob+"');\">";
	qzfn.className=qze.SelectedNode.qzao(false,false,false);
	qzfn.lastChild.className=qze.NodeEditCssClass;
	qzfn.IsEditing=true;
	qzfn.lastChild.focus();
	qzfn.lastChild.select();
	qzfn.lastChild.onclick=ComponentArt_CancelEvent;
	document.onkeydown=null;
	}
;
function qzyq(oldItem,youngItem){
	youngItem.ResolveAncestors();
	var qzz=youngItem;
	while(qzz!=null){
		if(qzz.ParentTreeView==oldItem.ParentTreeView&&qzz.StorageIndex==oldItem.StorageIndex){
			return true;
			};
		qzz=qzz.ParentNode;
		}
	;
	return false;
	}
;
function qzAgv(qzbc,qzma){
	var qzbu=document.getElementById(qze.TreeViewID+'_div'),qzAjt=document.getElementById(qzbc.id+'_cell'),
			qzAcz=document.getElementById(qzbc.id+'_expcol'),   qzAjs=document.getElementById(qzbc.id+'_icon'),
			qzAom=qzAjt.offsetHeight,                           qzAog=qzAjt.offsetWidth;
	if(qzAcz)
		qzAog+=qzAcz.offsetWidth;
	if(qzAjs)
		qzAog+=qzAjs.offsetWidth;
	var qzgx=qzAcz,x=0,y=0;
	while(qzgx&&qzgx!=qzbu){
		x+=qzgx.offsetLeft;
		y+=qzgx.offsetTop;
		qzgx=qzgx.offsetParent;
		}
	;
	if(!qzgx)
		return;
	if(qzma){
		qzbu.scrollTop=Math.max(0,y-Math.round(qzbu.offsetHeight/2));
		}
	else{
		if(y<qzbu.scrollTop){
			qzbu.scrollTop=y;
			}
		else if(y+qzAom+20>qzbu.offsetHeight+qzbu.scrollTop){
			qzbu.scrollTop=Math.max(y+qzAom-qzbu.offsetHeight+20,0);
			};
		};

	if(x<qzbu.scrollLeft){
		qzbu.scrollLeft=x;
		}
	else if(x+qzAog+20>qzbu.offsetWidth+qzbu.scrollLeft){
		if(qzAog>qzbu.offsetWidth){
			qzbu.scrollLeft=x;
			}
		else{
			qzbu.scrollLeft=Math.max(x+qzAog-qzbu.offsetWidth+20,0);
			};
		};
	}
;
function qzvk(qzAlc){
	return document.getElementById(qzAlc.id+'_div');
	}
;
function qzAdf(domElement){
	var qzbi=domElement.parentNode;
	for(var qzba=0;qzba<qzbi.childNodes.length-1;qzba++){
		if(qzbi.childNodes[qzba]==domElement){
			return qzbi.childNodes[qzba+1];
			};
		}
	;
	return null;
	}
;
function qzff(qzbc){
	if(qzbc){
		if(document.all){
			qzbc.removeNode(true);
			}
		else{
			qzbc.parentNode.removeChild(qzbc);
			};
		};
	}
;
function qzhg(qzgx){
	return qzAfx(qzgx);
	}
;
function qzfb(qzgx){
	return qzAfw(qzgx);
	}
;
var ComponentArt_TreeView_Support_Loaded=true;

⌨️ 快捷键说明

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