- 浏览: 184814 次
- 性别:
- 来自: 广州
文章分类
最新评论
-
yu505656166:
这个问题是怎么解决的啊?
spring mail 发送邮件,没有主题,没有收件人,显示乱码问题 -
dextersmake:
我的配置和你的差不多,调了有一些效果,但是还不是很满意。
YARN内存使用优化配置 -
kjkhi:
dxb350352 写道怎么用啊,运行完了也不知道取值的方法 ...
Apache POI组件使用eventusermodel模式读取Excel文档内容 -
dxb350352:
怎么用啊,运行完了也不知道取值的方法
Apache POI组件使用eventusermodel模式读取Excel文档内容 -
wanshijian:
相同问题,解决了!
使用cxf的wsdl2java是遇到的问题
先在前台ExtJS页面中:
GridPanel中显示所有用户信息:
新建一颗树:
注册树节点展开前事件,在展开前异步加载数据:
权限从树拉响gridpanel实现删除权限功能:
增加权限:
GridPanel中显示所有用户信息:
var userGrid = new Ext.grid.GridPanel({ id:'userGrid', title : '用户信息表', region : 'center', minColumnWidth : 50, enableDragDrop : true, //允许拖拽! ddGroup: "DDSource", loadMask : {msg:'正在加载数据,请稍侯...'}, store : userStore, sm : sm, cm : cm, viewConfig : { forceFit : false }, bbar : pageToolBar });
新建一颗树:
var userRole_treepanel = new Ext.tree.TreePanel({ id : "userRole_treepanel", title : '用户权限', width : 200, region : 'east', collapseMode :'mini', collapsible : true, lines: true, enableDD : true,//允许拖拽 ddGroup: "DDSource",//拖拽分组 autoScroll:true, rootVisible : true, loader : treeLoader, root : tree_root });
注册树节点展开前事件,在展开前异步加载数据:
//树节点展开前事件 userRole_treepanel.on("beforeexpandnode",function(node){ var id = node.id; if (id != "tree_root" && (node.hasChildNodes() == "" || node.firstChild == null)){ Ext.Ajax.request({ url : "getChildNode_userRole", params : {roleId:id}, success : function(response, opts){ var child = Ext.decode(response.responseText); node.appendChild(child); if (temp != null){ ddFunction(node, null, temp.selections); temp = null; } if(sourceRole != null && sourceUser != null){ appendNode(node,sourceUser,sourceRole);//把数据加进该节点的子节点 sourceRole = null; sourceUser = null; } }, failure : function(response,opts){ } }) } });
权限从树拉响gridpanel实现删除权限功能:
//响应权限从树拉向gridpanel实现删除! userRole_treepanel.on("afterrender",function(){ var dd = new Ext.dd.DropTarget("userGrid",{ ddGroup:"DDSource", notifyDrop : function(ddSource, e, data){ Ext.MessageBox.confirm("提示","确定删除用户【"+data.node.text+"】的【"+data.node.parentNode.text+"】权限?",function(id){ if("yes" == id){ var role_id = data.node.parentNode.id; var user_id = data.node.id; user_id = user_id.substring(user_id.indexOf("@")+1,user_id.length); Ext.Ajax.request({ url : "deleteUserRole_userRole", params : {roleId:role_id,userId:user_id}, success : function(response,opts){ }, failure : function(response, opts){ } }) data.node.remove(); } }); } }) });
增加权限:
//增加权限! userRole_treepanel.on("beforenodedrop",function(dropEvent){ var node = dropEvent.target; // 目标结点 var data = dropEvent.data; // 拖拽的数据 var point = dropEvent.point; // 加入到目标结点的位置方式append,above,below if (node.id == 'tree_root'){ dropEvent.cancel =true; return false; } if (node.parentNode.id == 'tree_root' && point != 'append') { return false; } if (!data.node) { //如果data.node为空,不是tree本身的拖拽,而是从grid到tree的拖拽,需要处理 switch (point) { case 'append': // 添加时,目标结点为node,子结点设为空。这时需要判断该节点是否已经从后台异步获取数据 if ((node.hasChildNodes() == "" || node.firstChild == null) && !node.isExpanded()){ temp = data; node.expand(); }else{ if (!node.isExpanded()){ node.expand(); } ddFunction(node, null, data.selections); } break; case 'above': ddFunction(node.parentNode, node, data.selections); break; case 'below': ddFunction(node.parentNode, node.nextSibling, data.selections); break; } }else {//树节点本身之前的拖动 var isok = true; var source_user_node = data.node; var source_user_id = data.node.id.substring(data.node.id.indexOf("@")+1,data.node.id.length); var source_role_id = data.node.parentNode.id; var target_role_id; if(point == 'append') { if ((node.hasChildNodes() == "" || node.firstChild == null) && !node.isExpanded()){ node.expand(); sourceRole = data.node.parentNode; sourceUser = source_user_node; return false; }else{ if (!node.isExpanded()){ node.expand(); } target_role_id = node.id; node.eachChild(function(child){ if(source_user_id == child.id.substring(child.id.indexOf("@")+1,child.id.length)){ Ext.MessageBox.alert("提示", "不能重复为用户:【"+data.node.text+"】添加【"+node.text+"】权限!"); isok = false; } }); if (isok){ Ext.Msg.confirm("提示","您确定要更改用户【"+data.node.text+"】的权限为【"+node.text+"】?",function(btn){ if ("yes" == btn){ node.appendChild(new Ext.tree.TreeNode({id:source_user_id,text:source_user_node.text,leaf:true})); source_user_node.remove(); ajaxRequest(source_user_id,source_role_id,target_role_id,"update");//更新数据库,update user_role set user_id = source_user_id,role_id = target_role_id where user_id = source_user_id and role_id = source_role_id }else return false; }); return false; }else return false; } }else{ target_role_id = node.parentNode.id; node.parentNode.eachChild(function(child){ if(source_user_id == child.id.substring(child.id.indexOf("@")+1,child.id.length)){ Ext.MessageBox.alert("提示", "不能重复为用户【"+data.node.text+"】添加【"+node.parentNode.text+"】权限!"); isok = false; } }); if (isok){ Ext.Msg.confirm("提示","您确定要更改用户【"+data.node.text+"】的权限为【"+node.parentNode.text+"】?",function(btn){ if ("yes" == btn){ node.parentNode.appendChild(new Ext.tree.TreeNode({id:source_user_id,text:source_user_node.text,leaf:true})); source_user_node.remove(); ajaxRequest(source_user_id,source_role_id,target_role_id,"update");//更新数据库update }else return false; }); return false; }else return false; } } });
- userRole.rar (3.8 KB)
- 下载次数: 675
发表评论
-
大数据处理--倒排索引
2014-06-28 14:08 4396简介 倒排索引源 ... -
大数据处理--BitSet
2014-06-28 11:01 1249java.util.BitSet可以按位存储。计算机中一个字 ... -
大数据处理--BloomFilter
2014-06-28 10:58 916BloomFilter——大规 ... -
hadoop 2.x升级异常
2014-06-19 11:54 22851、通过FileSystem这个API去访问hdfs上面的 ... -
Windows 编译Hadoop的Eclipse插件
2013-07-24 00:53 0http://www.cnblogs.com/fly ... -
log4j指定配置文件路径
2013-07-09 11:15 1933在默认情况下 log4j 会从WEB-INF/cl ... -
使用CXF发布和调用webservice
2013-05-08 16:14 1402依赖的JAR cxf-2.2.10.jar je ... -
Filter、Servlet、Listener区别与联系
2013-04-10 17:41 4184J2EE开发中,经常会使用到Filter、Servlet、L ... -
Apache POI组件使用eventusermodel模式读取Excel文档内容
2013-03-18 17:39 9118package com.test; import ja ... -
CXF之JAX-WS(转)
2012-12-18 17:31 1985CXF详解二 CXF之JAX-WS JAX-WS规范是一组 ... -
分析tomcat假死现象的过程
2012-10-15 15:50 0前段时间在公司遇到一个tomcat运行一段时间后(半个月左右 ... -
spring mail 通过HTTP代理发送邮件
2012-09-24 16:22 6662spring框架中org.spr ... -
多线程实现发送邮件功能
2012-09-14 18:44 11186通过Internet发送邮件,可能会在网络传输上面使用较多的 ... -
使用Spring mail通过socks代理发送邮件
2012-09-14 18:25 7135Spring框架提供了JavaMailSender接口及其实 ... -
plupload 上传组件,后台用java实现
2012-09-06 17:21 11486Plupload 是一个Web浏览器上的界面友好的文件上传模 ... -
POI读取大数据量的Excel文件
2012-09-06 11:58 15054POI读取Excel文件有两种方式,一种是使用usermod ... -
UML类图
2012-08-02 16:35 2044UML类图关系大全 1、关联双向关联:C1-C2:指 ... -
使用cxf的wsdl2java是遇到的问题
2012-03-13 10:50 3902对与同一个wsdl文件,我尝试过使用axis2是可以正常转过来 ... -
spring mail 发送邮件,没有主题,没有收件人,显示乱码问题
2012-03-06 14:02 4696使用spring框架风中的javamail发送邮件,遇到了一些 ... -
J2EE使用ireport做导出PDF操作
2012-03-02 17:21 2694首先,在lib中,加入一下jar: jasperreport ...
相关推荐
ExtJS的树控件支持异步加载,这意味着当用户滚动或展开树节点时,只加载必要的数据,这极大地提高了系统的响应速度和性能。同时,由于跨浏览器兼容性的良好支持,开发者无需担心浏览器差异带来的问题。 **SSH框架**...
动态树通常通过Ajax请求来获取并填充数据,从而实现异步加载,提高页面性能。这种特性使得树结构在不阻塞用户界面的情况下,能够逐步加载子节点,减少了初次加载时的数据量。 **ExtJS TreePanel** 在ExtJS中,动态...
6. **实现细节**:在EXTJS中,可以利用TreeLoader或TreeProxy来实现异步加载。同时,需要在后端编写API接口,该接口接收前端的请求,查询数据库并返回树节点数据。此外,为了实现复选框的功能,每个树节点可能需要...
5. 异步加载节点数据:ExtJS支持异步加载树节点数据,通常通过Ajax调用来实现。在示例代码中,authorityTree函数就是用来处理从服务器获取节点数据,并将其加载到TreePanel中。 6. 递归函数的运用:在示例代码中,...
5. **异步加载**:使用TreeLoader的`load`方法,传入要加载的节点,服务器返回该节点的子节点数据。 6. **服务端接口**:后端需要提供一个接口,接收父节点ID,返回该节点的子节点数据。通常采用JSON格式,每个对象...
ExtJs中的`Ext.data.Store`组件是与服务器进行数据交互的核心,它可以配置URL属性指向你的数据接口,以便异步加载数据。 1. **建立数据模型(Model)** 在ExtJs中,你需要定义一个数据模型(Model)来描述数据库中...
并且以进销存管理平台的权限管理系统为切入点对系统运用的ExtJS技术和SSH2框架进行分析,在系统分析设计中展示ExtJS多级动态树结构如何在权限管理系统中应用并实现Ajax技术的异步加载树节点功能,并因此提高权限管理...
这种类型的树形结构在许多场景下都非常有用,比如权限管理、多级分类管理等,它允许用户选择或取消选择树中的节点,从而实现对数据的多选操作。 ### 描述分析:“分享一个ExtJS Tree, 完整的带有复选框的树形结构”...
- 对于大数据量的树形结构,考虑使用异步加载(`async: true`),以提高性能。 - 考虑使用分页(`paging: true`)以减少内存占用。 - 配置合理的搜索策略(`queryMode`)以提升查询效率。 - 通过自定义事件处理...
- **AsyncTreeNode**: 表示异步加载的树节点。 #### 四、后端处理 为了使前端能够获取到数据,需要后端提供数据接口。这个接口通常会返回JSON格式的数据,以便于前端解析。 - **OrgTreeJsonData.action**: 这是...
对于大数据量的树,可以使用异步加载(lazy loading)技术,只加载当前可视区域的节点,提高性能。 11. **与服务器端通信**: 当用户完成选择后,通常需要将选中的节点ID发送到服务器端进行保存或处理。这可以...
在创建TreePanel时,我们需要定义`rootNode`,它是树的根节点,以及`store`,用于存储和管理树节点的数据。 ```javascript var treeStore = Ext.create('Ext.data.TreeStore', { root: { text: 'Root Node', ...
此外,ExtJs3还提供了数据代理(Data Proxy)和数据模型(Data Model)来管理数据的加载和保存流程。 员工管理系统可能包含以下几个模块: 1. **员工列表模块**:使用Grid组件展示员工信息,如姓名、职位、部门等...
- **权限管理**:包括公共、私有、特权等权限的管理。 #### 12. DomQuery基础 - **DomQuery介绍**:DomQuery是ExtJS提供的一个强大的DOM操作库,类似于jQuery。 - **基础用法**:包括选择器、遍历、过滤等基础操作...
开发者可以方便地添加、删除节点,以及通过异步加载实现大量数据的高效展示。在这个模板中,树形视图可能已经被配置好,可以直接用于显示后台系统的目录结构或者权限层次。 2. **选项卡(Tab)**: TabPanel是ExtJS...
7. **实际应用**:在实际项目中,树的操作不仅限于上述基本功能,还可能包含节点展开/折叠、异步加载、搜索、排序等特性。理解并掌握这些操作对提高用户体验和系统效率至关重要。 8. **调试与优化**:开发过程中,...
在页面中,定义一个TreePanel,设置其store属性为一个AjaxStore,用来异步加载JSON数据。AjaxStore会向服务器发送请求,接收返回的JSON数据并自动构建树结构。 6. **配置AjaxStore**:AjaxStore需要配置URL(指向...
标题中的“admin.zealot09:表达 extjs 节点”表明这是一个关于使用ExtJS构建的管理员系统的项目,其中可能涉及到ExtJS的树形节点操作。ExtJS是一款强大的JavaScript前端框架,用于构建富客户端应用,尤其擅长数据...