js树通用代码

 

  js树通用代码,用的sack.js的AJAX

  

前台js处理代码

ExpandedBlockStart.gif 代码

function  toUrl(id){
    
var  tagetUrl  =  document.getElementById( " tagetUrl " ).value;
    location.href
= tagetUrl + id;    
}
function  clickImgNode(event){
    
var  ev  =  event || window.event;
    
var  evt  =  ev.target  ||  ev.srcElement;
    
var  img  =  evt;
    clickNode(img.mId);
}
function  clickNode(id){
    
var  oDiv  =  document.getElementById(id);
    
var  status  =  oDiv.getAttribute( " status " );
    
if (status == " expended " ){
        collepse(oDiv);
    }
else   if (status == " collepsed " ){
        expend(oDiv);
    }
else {
        doit(id);
    }
}
function  collepse(oDiv){
    
var  children  =  oDiv.childNodes;
    
var  img  =  oDiv.childNodes[ 0 ].tagName  ==   " IMG " ? oDiv.childNodes[ 0 ]:oDiv.childNodes[ 1 ];
    
var  length  =  children.length;
    
for ( var  i = 0 ;i < length;i ++ ){
        
var  child  =  children[i];
        
if (child.tagName == ' DIV ' ){
            child.style.display
= " none "
        }
    }
    img.src
= " /vimgs/treetable/plus.gif " ;
    oDiv.setAttribute(
" status " , " collepsed " );
}
function  expend(oDiv){
    
var  children  =  oDiv.childNodes;
    
var  img  =  oDiv.childNodes[ 0 ].tagName  ==   " IMG " ? oDiv.childNodes[ 0 ]:oDiv.childNodes[ 1 ];
    
var  length  =  children.length;
    
for ( var  i = 0 ;i < length;i ++ ){
        
var  child  =  children[i];
        
if (child.tagName == ' DIV ' ){
            child.style.display
= ""
        }        
    }
    img.src
= " /vimgs/treetable/minus.gif " ;
    oDiv.setAttribute(
" status " , " expended " );
}
function  doit(id){
    
var  ajax  =   new  sack();
    
var  model  =  document.getElementById( " model " ).value;
    ajax.setVar(
" pid " , id);
    ajax.setVar(
" model " , model);
    ajax.setVar(
" action " " getDocXmlChildren " );
    ajax.requestURL 
=   " /ServiceAction/com.velcro.base.category.servlet.CategoryTreeAction " ;
    ajax.method 
=   " GET " ;
    ajax.onLoading 
=   function (){showLoading(id);};
    ajax.onCompletion 
= function (){whenCompleted(ajax);};
    ajax.runAJAX();
}
function  showLoading(id){
    
var  oDiv  =  document.getElementById(id);
    
if (oDiv.childNodes[ 0 ].tagName  ==   " IMG " ){
        oDiv.childNodes[
0 ].src = " /vimgs/task/loading.gif " ;
     }
else {
        oDiv.childNodes[
1 ].src = " /vimgs/task/loading.gif " ;
     }
}

function  whenCompleted(ajax){
  
var  oXmlDom  =  ajax.responseXML;
  
var  categorys  =  oXmlDom.documentElement;
  
var  pid  =  categorys.getAttribute( " id " );
  
var  parentDIV  =  document.getElementById(pid);
  parentDIV.setAttribute(
" status " , " expended " );
  
var  oFragment = document.createDocumentFragment();
  
var  length  =  categorys.childNodes.length;
     
for ( var  i = 0 ;i < length;i ++ ){
         
var  category  =  categorys.childNodes[i];
         
var  id  =  category.getAttribute( " id " );
         
var  name  =  category.getAttribute( " name " );
         
var  hasChildren  =  category.getAttribute( " hasChildren " );
         
var  hasPermission  =  category.getAttribute( " hasPermission " );
         
         
var  childrenDIV  =  document.createElement( " div " );
         childrenDIV.id
= id;
        childrenDIV.setAttribute(
" status " , " none " );
         
var  img  =  document.createElement( " img " );
         img.align
= " absmiddle " ;
         img.border
= " 0 " ;
         img.mId
= id;
         
if (hasChildren == " true " ){     
             img.src
= " /vimgs/treetable/plus.gif " ;
             img.onclick 
=   function (event){clickImgNode(event);}; 
         }
else {
             img.src
= " /vimgs/treetable/blank.gif " ;
         }         
         childrenDIV.appendChild(img);
         
if (hasPermission == " true " ){
             
var  tag  =  document.createElement( " a " );
             tag.href
= " javascript:toUrl(' " + id + " '); " ;
             tag.appendChild(document.createTextNode(
"" + name));
             childrenDIV.appendChild(tag);
         }
else {
             
var  span  =  document.createElement( " span " );
             span.appendChild(document.createTextNode(name));
             childrenDIV.appendChild(span);
         }
         
if (hasChildren == " true " ){     
             
try {doit(id);} catch (e){alert(e.message)};
             childrenDIV.setAttribute(
" status " , " expended " );
         }
         oFragment.appendChild(childrenDIV);
     }
     parentDIV.appendChild(oFragment);
    
var  IMG  =  parentDIV.childNodes[ 0 ].tagName  ==   " IMG " ? parentDIV.childNodes[ 0 ]:parentDIV.childNodes[ 1 ];
    IMG.src
= " /vimgs/treetable/minus.gif " ;
}

 

后台java处理代码

ExpandedBlockStart.gif 代码
private   void  getXmlChildren(HttpServletRequest request,HttpServletResponse response, User user) {
        response.setContentType(
" text/xml " );
        response.setHeader(
" Cache-control " " no-cache " );
        Locale locale
= (Locale)request.getSession().getAttribute(Globals.LOCALE_KEY);
        String pid 
=  request.getParameter( " pid " );
        String model 
=  request.getParameter( " model " );
        String method 
=  request.getParameter( " method " );
        
        Element categorys 
=   new  Element( " categorys " );
        categorys.setAttribute(
" id " , pid);
        Document document 
=   new  Document(categorys);
        
        List
< Category >  subList =   null ;

        List
< Category >  categoryList =  categoryService.getSubCategoryList(pid,model, null , null );
        String hasperm 
=  categoryService.getPermitCategoryids(velcrouser, model, pid);
        subList 
=  categoryService.getSubTreeList(categoryList,pid,haspermitcatids);
        
        
        
for ( int  i = 0 ;i < subList.size();i ++ ){
            Category category 
=  subList.get(i);
            
if ( " false " .equals(category.getCol3()) && category.getChildrennum() == 0 ){
                
continue ;
            }
            Element child 
=   new  Element( " category " );
            child.setAttribute(
" id " ,category.getId());
            child.setAttribute(
" hasPermission " ,category.getCol3());
            categorys.addContent(child);
        }        
        XMLOutputter outputter 
=   new  XMLOutputter();
        
try  {
            outputter.output(document, response.getOutputStream());
        } 
catch  (Exception e) {
            System.out.println(
" 获取! " );
        }
        
    }

 

 

 

转载于:https://www.cnblogs.com/zping/archive/2010/01/29/1659284.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值