The data for this tree is asynchronously loaded through a TreeStore and
AjaxProxy.
js代码如下:
Ext.require([
'Ext.tree.*',
'Ext.data.*',
'Ext.tip.*'
]);
Ext.onReady(function() {
Ext.QuickTips.init();
var store = Ext.create('Ext.data.TreeStore', {
proxy: {
type: 'ajax',
url: 'organization!getDirectSubordinates.action'
},
root: {
text: '根节点',
id: '0',
expanded: true
},
folderSort: true,
sorters: [{
property: 'text',
direction: 'ASC'
}]
});
var tree = Ext.create('Ext.tree.Panel', {
store: store,
rootVisible:false,
viewConfig: {
plugins: {
ptype: 'treeviewdragdrop'
}
},
renderTo: 'tree-div',
height: 300,
width: 250,
title: 'Files',
useArrows: true,
dockedItems: [{
xtype: 'toolbar',
items: [{
text: 'Expand All',
handler: function(){
tree.expandAll();
}
}, {
text: 'Collapse All',
handler: function(){
tree.collapseAll();
}
}]
}]
});
});
java代码如下:
package com.dahuatech.work.action;
@Namespace("/")
@Scope("prototype")
@Controller(value = "organization")
public class OrganizationAction extends BaseAction {
private String node;
@Action(value = "getDirectSubordinates")
public String getDirectSubordinates() throws Exception {
JSONArray json = new JSONArray();
if (node.equals("0")) {
JSONObject object = new JSONObject();
object.put("id", "1");
object.put("text", "广东");
object.put("cls", "folder");
json.add(object);
}
if (node.equals("1")) {
JSONObject ob1 = new JSONObject();
ob1.put("id", "2");
ob1.put("text", "11RPU");
ob1.put("cls", "folder");
json.add(ob1);
}
if (node.equals("2")) {
JSONObject ob1 = new JSONObject();
ob1.put("id", "3");
ob1.put("text", "11Chanel");
ob1.put("leaf", true);
ob1.put("cls", "file");
JSONObject ob2 = new JSONObject();
ob2.put("id", "4");
ob2.put("text", "22Chanel");
ob2.put("leaf", true);
ob2.put("cls", "file");
json.add(ob1);
json.add(ob2);
}
ActionContext ctx = ActionContext.getContext();
HttpServletResponse response = (HttpServletResponse) ctx
.get(ServletActionContext.HTTP_RESPONSE);
response.setCharacterEncoding("UTF-8");
response.setContentType("text/html;charset=UTF-8");
PrintWriter out = response.getWriter();
out.print(json.toString());
return null;
}
public String getNode() {
return node;
}
public void setNode(String node) {
this.node = node;
}
}
作用:生成异步请求时的json数据。
当展开节点时,前台会把json数据中节点的id通过node参数传送到后台。
分享到:
相关推荐
extjs异步树,多选树,json数据机构,集成spring,struts例子,extjs异步树,多选树,json数据机构,集成spring,struts例子,extjs异步树,多选树,json数据机构,集成spring,struts例子,extjs异步树,多选树,json...
在ExtJS 3中,实现异步下拉树涉及到几个关键概念和技术。 首先,理解“异步”意味着数据不是一次性加载完毕,而是按需加载。在下拉树中,当用户展开树节点时,只加载该节点及其子节点的数据,这减少了初始页面加载...
说明:本例主要实现在树节点数据过多的情况下对数据进行异步请求,并且在请求数据返回前台的同时实现级联选择。使用ExtJs版本为4.1.1a,在struts2下测试通过。例子仅供提供思路,简单易懂,不负责代码优化,哈哈!
ExtJS 4 下拉树(TreeCombo)是一种组合控件,它将传统的下拉框与树形结构结合在一起,提供了一种在有限空间内展示层级数据的高效方式。这种控件在很多场合都非常实用,例如在需要用户选择分类或者层级结构的场景中...
在ExtJS4中实现树结构的异步加载,主要涉及以下几个关键概念: 1. **TreeStore**: TreeStore是树结构的数据源,它负责管理与服务器之间的数据通信。对于异步加载,我们需要配置TreeStore,设置`autoLoad`为`false`...
在这款框架中,异步树(Asynchronous Tree)是一种重要的组件,它允许开发者动态加载树形结构的数据,提高网页性能,尤其是在处理大量数据时。异步树通常与JSON(JavaScript Object Notation)数据格式结合使用,以...
在家研究了一下extjs异步树,-每个节点都异步加载-前后台代码都有-附整个工程-运行通过-前台代码请看doctree.js,后台代码请看TreeService.java,运行环境:Myeclipse6.5+tomcat7.0.27
在这个特定的情况下,我们讨论的是一个定制的下拉树菜单控件——ComboBoxTree,它在ExtJS4中实现了单选和多选功能,并且具备展开选中指定节点的能力。这个控件在实际项目中已经被广泛使用并证明了其稳定性和实用性,...
ExtJS Tree 是一个基于 ExtJS 框架的组件,用于构建可交互的、层级结构的树形控件。在 Web 开发中,它经常被用来展示目录结构、组织架构或者复杂的分类数据。异步加载树型是 ExtJS Tree 的一个重要特性,允许只在...
标题中的“Extjs4 下拉树”指的是EXTJS框架中的一个组件,用于实现下拉菜单与树形结构的结合,这种组件通常在需要选择层级结构数据时非常有用,比如地区选择、组织架构选择等。EXTJS是Sencha公司开发的一个...
ExtJs4.2没有直接提供下拉树这个组件,但是有例子可以用,文件位置:ext-4.2.1.883\examples\ux\TreePicker.js 但是它有点小毛病吧:默认显示了根节点;达到最小高度时再展开节点,高度不能自动调整。 所以我做了一...
在给定的压缩包文件中,包含了许多关于ExtJs中目录树和异步树的示例,这些示例可以帮助开发者深入理解和运用这一功能。以下是对这些知识点的详细解释: 1. **ExtJs目录树(Tree)**: ExtJs的树组件(Tree)允许...
本文将深入探讨如何使用ExtJS构建动态异步加载的树形结构,结合AJAX技术实现JSON数据的高效传输。 首先,我们要理解什么是动态异步加载。在传统的网页开发中,如果一次性加载所有数据,可能会导致页面加载速度慢,...
在EXTJS 4中,树形表格组件不仅支持基本的节点操作,如展开、折叠、拖放,还提供了丰富的数据绑定和筛选功能,是处理复杂数据结构的理想选择。 首先,让我们深入了解一下EXTJS 4树形表格组件的特性: 1. **层级...
4. 数据绑定:使用`store`属性与数据源进行绑定,通过监听`load`事件实现异步加载。 二、动态加载 1. `rootVisible`:设置为false可隐藏根节点,使树形结构从第一级节点开始显示。 2. `async`:设置为true启用异步...
EXTJS4的树组件支持动态加载、拖放操作、节点的增删改查等功能。通过配置store、model和节点渲染器,我们可以定制树的显示效果和交互行为。 接着,网格(Grid)组件是EXTJS的核心组件之一,用于展示大量数据并支持...
7. **异步加载**:对于拥有大量子节点的树,EXTJS支持延迟加载或按需加载。只有当用户展开父节点时,才会请求并加载其子节点,这样可以显著提高性能。 8. **搜索性能优化**:在处理大量数据时,可以考虑对树进行...
标题中的“springmvc+extjs4实例树”指的是一个结合了SpringMVC和ExtJS4技术的实战项目,主要用于创建一个具有树形结构的用户界面。这个项目可能用于展示层次结构的数据,例如组织架构、文件系统或者数据库的分类...
4. **Combobox Tree组件**:在ExtJS中,Combobox是一个下拉框组件,它允许用户从预定义的列表中选择一个值。将树形结构与Combobox结合,就形成了Combobox Tree。这个组件需要自定义配置,包括树的数据源、显示模式...
ExtJS3 升级到 ExtJS4 方案 ExtJS3 升级到 ExtJS4 需要修改大量代码,主要是因为 ExtJS4 配备了一类新的系统,不向后兼容。在 ExtJS 3 里生成表的几个框架组件,ExtJS4 大多生成 div,这使得 CSS classes 将会失败...