treepanel動態加載數據的例子

var tree = new Ext.tree.TreePanel({   
        region:'west',   
        title:'站點樹:',   
        width:200,   
        minSize:150,   
        maxSize:200,   
        iconCls:'ux-auth-menu-header-icon',
        split:true,   
        autoScroll:true,   
        autoHeight:false,   
        collapsible:true,   
        rootVisable:false, //不顯示根節點  
        root:new Ext.tree.TreeNode({   
            id:'root',   
            text:'分所',   
            draggable:false,   
            expanded:true  
        }),
        loader:new Ext.tree.TreeLoader({
            dataUrl:'treeUtil.html?content.method=getAllMenuTreeNodes'
        })           
    });

public void getAllMenuTreeNodes(ActionMapping mapping, ActionForm form,
HttpServletRequest request, HttpServletResponse response) {
String systemId = request.getParameter("node");
String haveCheckBox = request.getParameter("haveCheckBox");
IMenuManager menuManager = this.getPkgServer().getDriver().getSystemManageServer().getMenuManager();
List<HashMap> nodes = new ArrayList<HashMap>();
String parentNodeName =menuManager.getMenu(Long.parseLong(systemId)).getName() ;
List<Menu> menus = menuManager.getMenus("em.parent_name= '" +parentNodeName + "'");
for(Menu menu:menus){
HashMap<String, Object> hm=new HashMap<String, Object>();
hm.put("id", menu.getId());
hm.put("text", menu.getTitle());

hm.put("iconCls",menu.getName());
nodes.add(hm); 
}
JSONArray ary = new JSONArray(nodes);
writeJson(response, ary.toString());

}

發佈留言