很多情况下我们需要动态生成树原因有二,其一,每个树节点的孩子数据会随时变化,其二,在数据量较大时一次性加载数据会耗费较长的时间。
先看看在动态加载树时,treestore和treepanel的定义
// 的TreeStore(第一棵树)
var businessTreeStore = Ext.create('Ext.data.TreeStore', {
proxy : {
type : 'ajax',
url : serviceUrl//加载数据的路径
},
fields : ['indexId', 'text','caseId','msgType','icon', 'leaf'],//数据项
root : {
text : proName,//树根节点的显示内容,在此proName为一个变量
id :indexId,
icon:'resources/images/pic/data-Backup.png',
expanded : true
},
folderSort : true,
sorters : [{//树节点排序设置
property : 'indexId',
direction : 'ASC'
}],
listeners : {//注意beforeload的参数,确定在点击非叶子节点时加载数据传递的参数
beforeload : function(ds, opration, opt) {
if(opration.node.data.depth==0){//以下为设置参数第一级节点加载
resultbodyValue+=planId
opration.params.headValue = resultheadValue;//其中headvalue为参数名,而resultheadValue为之前定义好的变量
opration.params.handleMsg = resulthandleMsg;
opration.params.returnMsg = returnMsgBusiness;
opration.params.bodyValue = resultbodyValue;
}else if(opration.node.data.depth==1){//第二级节点
opration.params.headValue = resultheadValue;
opration.params.handleMsg = resulthandleMsg;
opration.params.returnMsg = returnMsgProcess;
opration.params.bodyValue = resultbodyValue+"^^result.caseId:"+opration.node.data.caseId;
}
}
}
});
以下是treePanel的定义
// 业务域的目录树(第一棵树), 加载页面时显示
var businessTree = Ext.create('Ext.tree.Panel', {
id : 'Panel.BusinessTree',
title : '测试记录',
rootVisible : true,
split : true,
region : 'center',
minSize:100,
maxSize:300,
store : businessTreeStore,
listeners : {
'itemclick' : function(view, record, items, index, e) {
// 点击非叶子节点时(业务域)
if(record.data.depth==0) {
//此处根据树的节点不同添加相应的事件
}if(record.data.depth==1) {
}
else if(record.data.leaf == true){
//为叶子节点时
}
}
//},//以下为增加右键事件,具体可以根据需要改动
//'itemcontextmenu' : function(menutree, record, items, index, e) {
//e.preventDefault();
//e.stopEvent();
// if(record.data.leaf == false) {
//// 右键点击第二级业务域
//var tempmenu = new Ext.menu.Menu({
//floating : true,
//items : [{
//text : "删除业务域",
//handler : function() {
// currentNode = record;
// var con = confirm("确定删除该业务域?");
// if(con == true){
//
//var persistentId = currentNode.get('persistentId');
//var bodyDeleteBusiness = "business.persistentId:" + persistentId
//Ext.Ajax.request({
//url : "SWAPCSP.CSP.ServiceProxy.cls",
//timeout:60000,
//params : {
//},
//method : 'POST',
//success : function(response, opts) {
// currentNode.parentNode.set('expanded', false);//节点更新
//currentNode.parentNode.set('loading', false);
//currentNode.parentNode.set('loaded', false);
//currentNode.parentNode.expand();
////}
//});
//
// }else{}
//}
//}]
//});
//}
//tempmenu.showAt(e.getXY());
//}
}
});
一次加载后
二次加载后
分享到:
相关推荐
动态生成下拉树形框是EXTJS中一个常见的需求,它允许用户在一个下拉菜单中展示层次化的数据结构,比如组织架构或者文件系统。这篇博客()可能会详细讲解如何实现这个功能。 在EXTJS中,我们通常使用`Ext.tree....
在“ExtJs 连接数据库并且生成动态树”这个主题中,我们将探讨如何利用ExtJs来连接后端数据库,并动态生成树形结构来展示数据。 首先,要实现ExtJs连接数据库,你需要一个服务器端的数据接口,它可以是基于PHP、...
不服老外不行,还是人家实在,贴出来的源码绝对能运行,找了两个晚上找到的。佩服佩服,那些翻译的,每一个能完整的运行,哎。下面是sql CREATE TABLE [dbo].[Employee]( [EmployeeID] [int] IDENTITY(1,1) NOT ...
在本文中,我们将探讨如何使用ExtJS4生成树形结构以及实现动态加载功能。ExtJS4是一款强大的JavaScript库,特别适合构建富客户端应用,其中树组件(Tree)是其重要组成部分,用于展示层次化的数据。 首先,让我们...
根据提供的文件信息,我们可以深入探讨两个主要的知识点:ZUI 动态生成树的代码以及 ZUL 对 ExtJS 的集成。 ### ZUI 动态生成树的代码 #### 概述 ZK 是一个用于构建企业级 Web 应用的强大框架,而 ZUI 是其前端...
在本文中,SSH框架被用于构建一个后台系统,用于支持前端ExtJS应用的动态树搜索功能。 ExtJS是一个流行的JavaScript库,用于创建富客户端Web应用程序,特别是用于构建数据驱动的用户界面。在描述的场景中,ExtJS被...
总的来说,这个项目展示了如何将数据库中的数据通过JDBC获取,转换为JSON格式,然后利用ExtJS的动态加载机制在前端构建出可交互的树形结构。这涉及到前端与后端的交互、数据的序列化与反序列化,以及数据库操作等多...
在ExtJS动态树中,Struts需要将后端数据转化为JSON格式,以便前端解析。JSON对象通常包含键值对,数组和嵌套的对象,可以方便地表示复杂的数据结构。 3. **Struts2 Action和Result**: 在Struts2框架中,Action类是...
提供Extjs树的动态菜单生成,已及对树的增删查改该操作
通过下载并研究这些代码,初学者可以了解如何将ASP.NET、WCF和ExtJS结合起来实现动态的目录树功能。 总的来说,这个实例展示了如何利用ASP.NET作为服务器平台,WCF作为通信机制,以及ExtJS作为前端展示工具,共同...
本文将深入探讨如何使用ExtJS构建动态异步加载的树形结构,结合AJAX技术实现JSON数据的高效传输。 首先,我们要理解什么是动态异步加载。在传统的网页开发中,如果一次性加载所有数据,可能会导致页面加载速度慢,...
extjs的动态树的生成,还好就是extjs的一些属性的应用
内容索引:.NET源码,Ajax相关,EXTjs 结合EXTJS类库动态生成Grid数据列表的演示,如果你没有配置数据库信息,那么程序运行时会自动弹出数据安装窗口,安装完成就可以查看演示了,基于EXT风格的Ajax数据列表,简洁实用...
总结起来,"jsp+access+extjs动态树实例"是一个综合性的Web开发案例,它结合了服务器端的JSP处理、数据库操作以及客户端的动态展示技术,展示了如何利用现有工具和技术实现一个功能丰富的交互式动态树视图。...
这篇博客文章"Extjs--DWR做的动态树"可能探讨了如何利用这两者结合来创建动态的树形数据结构,这种结构在很多Web应用中用于展示层次化的信息,比如文件系统、组织结构或导航菜单。 动态树在Web应用中是交互式的,...
通过java 访问数据库而生成节点 子节点的 ID 与 父节点的关系为“父节点id_子节点id”此id为数据库中的id 同理“父节点id_子节点id_子子节点id”,因此加载树时将node.id做为参数 通过split("_"),根据数据的长度就...
在JavaScript(JS)中生成树形结构,通常用于创建如导航菜单、文件系统视图或者组织数据。在给定的标题和描述中提到了两种方法:一是使用现成的插件,二是采用自定义的JS代码。这两种方法各有优缺点,下面我们将详细...
总结来说,"Extjs 无限树菜单 后台拼接json"涉及到的技术点包括:ExtJS的树形组件使用、后台动态生成JSON、无限滚动加载策略、以及前端和后端的异步通信。通过这样的方式,我们可以构建出动态、可扩展且高效的树形...
ExtJS AJAX Tree是一种基于JavaScript的动态树形结构,它利用AJAX技术来异步加载节点数据,无需在服务器端生成完整的树结构。这种方式可以显著提高页面加载速度,尤其是在处理大量数据时。ExtJS是一个功能丰富的...
demo描述: 1. 页面主框架是左是一个tree,...2. 左边的树是加载主页面的时候动态生成 3. 点击左边的树的节点动态加载controller生成一个table 注:需要自己导入Extjs 4.2.x 的文件,该demo是用Extjs 4.2.1 写的