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 + -
显示快捷键?