为了正常的体验网站,请在浏览器设置里面开启Javascript功能!

基于ExtJS和E3.Tree实现下拉树

2018-02-21 5页 doc 45KB 9阅读

用户头像

is_852287

暂无简介

举报
基于ExtJS和E3.Tree实现下拉树基于ExtJS和E3.Tree实现下拉树 【关键词:E3.Tree ComboTree ExtJS 下拉树】 一、写在最前面 下拉树为下拉框和树形UI组件结合的一种高级UI表现形式,可称其为ComboTree。在权限管理模块及其 他各种业务中都较为常见。此文就将结合ExtJs的Combobox组件和经过深度封装的E3.tree树形UI组件 一起实现这种下拉树。 二、实现步骤 第一步、扩展E3.Tree的AbstractWebTreeBuilder public class ComboExtTreeBuilder e...
基于ExtJS和E3.Tree实现下拉树
基于ExtJS和E3.Tree实现下拉树 【关键词:E3.Tree ComboTree ExtJS 下拉树】 一、写在最前面 下拉树为下拉框和树形UI组件结合的一种高级UI现形式,可称其为ComboTree。在权限管理模块及其 他各种业务中都较为常见。此文就将结合ExtJs的Combobox组件和经过深度封装的E3.tree树形UI组件 一起实现这种下拉树。 二、实现步骤 第一步、扩展E3.Tree的AbstractWebTreeBuilder public class ComboExtTreeBuilder extends AbstractWebTreeBuilder{ //361行 //temp.append("${treeID}.render('${treeID}');").append(ENTER); } 第二步、使用扩展后的ComboExtTreeBuilder构造出树形UI public void generateComboMenuTree(HttpServletRequest request){ List nodeList = this.manageMenuResourceBpo.getMenuListByDto(new BaseDto()); //业务数据解码器,从业务数据中分解出id和parentid UserDataUncoder deptUncoder = new UserDataUncoder(){ public Object getID(Object menuData) throws UncodeException { MenuResourceDomain domain = (MenuResourceDomain)menuData; return domain.getMenuId(); } public Object getParentID(Object menuData) throws UncodeException { MenuResourceDomain domain = (MenuResourceDomain)menuData; return domain.getParentMenuId(); } }; //Tree模型构造器,用于生成树模型 AbstractWebTreeModelCreator treeModelCreator = new AbstractWebTreeModelCreator(){ //该方法负责将业务数据映射到树型节点 protected Node createNode(Object menuData, UserDataUncoder uncoder) { MenuResourceDomain domain = (MenuResourceDomain)menuData; WebTreeNode result = new WebTreeNode(domain.getMenuName(), "node" + domain.getMenuId()); if(EredcipUtils.isNotEmpty(domain.getMenuId())){ result.setAttribute("parentMenuId", domain.getMenuId()); } return result; } }; treeModelCreator.init(request); TreeModel treeModel = treeModelCreator.create(nodeList, deptUncoder); TreeDirector director = new DefaultTreeDirector(); ComboExtTreeBuilder treeBuilder = new ComboExtTreeBuilder(); treeBuilder.init(request); //防止生成DIV占位 treeBuilder.setCreateDiv(false); //menuComboTree为生成的Ext.Treepanel对象名 treeBuilder.setTreeID("menuComboTree"); treeBuilder.setRootExpand(false); director.build(treeModel, treeBuilder); String treeScript = treeBuilder.getTreeScript(); request.setAttribute("menuComboTreeScript", treeScript); } 第三步、使用ExtJS生成下拉框Combobox //输出树脚本 ${menuComboTreeScript} 说明: 看到这里,聪明的读者都会想到,如此类推其实在下拉框里放任何的Ui组件都是可以的不一定是树UI。 只要将其放到Combobox的下拉模板的DIV容器里就可。本文不再展开。 三、效果预览
/
本文档为【基于ExtJS和E3.Tree实现下拉树】,请使用软件OFFICE或WPS软件打开。作品中的文字与图均可以修改和编辑, 图片更改请在作品中右键图片并更换,文字修改请直接点击文字进行修改,也可以新增和删除文档中的内容。
[版权声明] 本站所有资料为用户分享产生,若发现您的权利被侵害,请联系客服邮件isharekefu@iask.cn,我们尽快处理。 本作品所展示的图片、画像、字体、音乐的版权可能需版权方额外授权,请谨慎使用。 网站提供的党政主题相关内容(国旗、国徽、党徽..)目的在于配合国家政策宣传,仅限个人学习分享使用,禁止用于任何广告和商用目的。

历史搜索

    清空历史搜索