树的异步加载数据

 Ext.onReady(function(){
     // 开启表单提示
  Ext.QuickTips.init();
  // 设置提示信息位置为边上
  Ext.form.Field.prototype.msgTarget = 'side';
  // 树
  NavTree = function() { // navTree类
   var nav;
   var loader;
   var root;
   var leafMenu;
   var dirMenu;
   return {
    init : function() {
     if (!loader) {
      loader = new Ext.tree.TreeLoader({ // 实例化loader
       // TreeLoader
       url : "../sysmanagement/querymenu.action"
      });
      loader.on('beforeload', function(treeloader, node) {// 设置参数
         treeloader.baseParams = {
          id : node.id,
          method : 'tree'
         };
        }, this);

     }
     if (!root) {
      root = new Ext.tree.AsyncTreeNode({// 实例化 根节点root
       id : '-1',
       text : "功能菜单"
      });
     }
     if (!nav) {
      nav = new Ext.tree.TreePanel({ // 实例化 树面板nav
       title : "功能菜单",
       width : 250,
       autoScroll : true,
       animate : true,
       id:"ptree",
       height:500,
       loader : loader,// 加入loader
       root : root, // 加根节点进来
       //checkModel:"cascade",
       checkModel:'cascade',
       enableDD : false
        // 能拖动
      });
      nav.on("contextmenu", this.showTreeMenu);// 面板上添加右击菜单,调用方法  
     }

    },
    showTreeMenu : function(node, e) {
     nodeSelected = node;
     nodeSelected.select();// 选中的node
     if (node.isLeaf()) { // 如果是叶子
      leafMenu.showAt(e.getPoint());// 显示叶子
     } else {
      dirMenu.showAt(e.getPoint());// 显示目录
     }
    },

    show : function() {
     nav.render("trees"); // 加入div
     nav.getRootNode().toggle();// 根节点触发查询

    //nav.expandAll();   //将所有含有子节点的节点展开
    }
   }
  }();
  
  NavTree.init();// 初始化方法
  NavTree.show();// 显示方法

});

 

添加事件

Ext.getCmp('ptree').on('click',function(node,trees){
   if(node.isLeaf()){
    leafnode=node.id;
    return;
   }
   Ext.getCmp('fnode').setValue(node.text);
   fid=node.id;
  });

 

///struts截获配置

<action name="querymenu" method="menulist" class="com.feapp.framework.sysmanagement.action.LimitedManagementAction">///action类
    <result name="success" type="json">
     <param name="root">
      jsonArray  //JSONArray
     </param>
    </result>
    <result name="input">
     /core/error.jsp
    </result>
   </action>

 

//返回JSONArray

private JSONArray listToJson(List list){
  JSONArray jsonArray=new JSONArray();
  
  Iterator iter=list.iterator();
  LimitedManagement lm=null;
  while(iter.hasNext()){
   lm=(LimitedManagement)iter.next();
   JSONObject obj=new JSONObject();
   obj.put("id", lm.getAnthorityId());
   obj.put("text",lm.getAuthorityName() );
   obj.put("leaf","0".equals(lm.getIsLeaf().trim())? false : true);
   
   jsonArray.add(obj);
  }
  return jsonArray;
 }

 

/异步刷新树
           Ext.getCmp("ptree").root.reload();

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值