ExtJs树TreePanel

1.创建一个简单(静态)的树

/**
   创建一个简单(静态)的树
 */
function createSimpleTreePanel(){
    //因为每个树中由N个节点组成的,所以要创建树,必须创建树所包含的节点(树必须有一个或多个根节点).
    var vRoot = new Ext.tree.TreeNode({text: '根节点1'}) ;//创建节点
    var vNode1 = new Ext.tree.TreeNode({text: '子节点1'}) ;//创建节点
    vNode1.appendChild(new Ext.tree.TreeNode({text: '子节点11'}));
    vNode1.appendChild(new Ext.tree.TreeNode({text: '子节点12'}));
    var vNode2 = new Ext.tree.TreeNode({text: '子节点1'}) ;//创建节点
    vRoot.appendChild(vNode1) ;//在vRoot根节点上创建子节点.
    vRoot.appendChild(vNode2) ;//在vRoot根节点上创建子节点.
    var vTree = new Ext.tree.TreePanel({//创建一个用于装载树的面板
        renderTo: document.body,//绑定在body元素上.
        width: 300,
        height: 200,
        root: vRoot
    });
}

2.创建异步简单树

/**
   创建异步简单树
 */
function createSimpleTreeLoader(){
    //创建一个由treeLoader.js定义的节点结构[{...},{...}]
    var vNode = new Ext.tree.TreeLoader({url:'../js/treeLoader.js'});
    //创建一个根节点,将上面定义的子节点结构与根节点绑定.
    var vRoot = new Ext.tree.AsyncTreeNode({text: '根节点',loader: vNode}) ;
    var vTree = new Ext.tree.TreePanel({//创建一个用于装载树的面板
        renderTo: document.body,//绑定在body元素上.
        width: 300,
        height: 200,
        root: vRoot//绑定根节点.
    });
}

3.创建动态(从JSP文件动态载入)树

/**
   创建动态(从JSP文件动态载入)树
 */
function createSimpleDynamicTreeLoader(){
    //创建一个节点,节点的结构由JSP文件提供
    var vNode = new Ext.tree.TreeLoader({url:'treeLoader.jsp'});
    //为该节点添加beforeload(点击节点之前触发)事件监听器.
    vNode.on("beforeload",function(myLoader,node){
        //myLoader.baseParams.parentId是为treeLoader.jsp传递参数,参数名为parentId,可以自己取名.node代表正要点击的节点对象
        myLoader.baseParams.parentId = node.id=='root'?"":node.text;
    }) ;
    var vRoot = new Ext.tree.AsyncTreeNode({id: 'root',text: '根节点',loader: vNode}) ;
    var vTree = new Ext.tree.TreePanel({//创建一个用于装载树的面板
        renderTo: document.body,//绑定在body元素上.
        width: 300,
        height: 200,
        root: vRoot//绑定根节点.
    });
}

4.用到的文件 treeLoader.js

[{text:'子节点1'},{text:'子节点2',leaf:true}]

5.用到的文件 treeLoader.jsp

<%@ page language="java" contentType="text/html; charset=UTF-8"
    pageEncoding="UTF-8"%>
<%
    String parentId = request.getParameter("parentId") ;
System.out.println(parentId) ;
    if("".equals(parentId) || parentId==null){
        out.print("[{text:\'北京\'},"+"{text:'辽宁'}]");
    }else if("北京".equals(parentId)){
        out.print("[{text: \'朝阳\',leaf: true},"+"{text: '东城',leaf: true}]");
    }else if("辽宁".equals(parentId)){
        out.print("[{text: \'沈阳\',leaf: true},"+"{text: '大连',leaf: true}]");
    }
%>

6.载入

//Ext.onReady(createSimpleTreePanel);//创建一个简单(静态)的树
//Ext.onReady(createSimpleTreeLoader);//创建异步简单树
Ext.onReady(createSimpleDynamicTreeLoader);//创建动态树
 

 

 

 

 

你可能感兴趣的:(JavaScript,树,ExtJs,TreePanel)