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());

  }