<script type="text/javascript">
Ext.onReady(function(){
var tree= new Ext.tree.TreePanel({
el:'tree',
loader:new Ext.tree.TreeLoader()
});
var root = new Ext.tree.AsyncTreeNode({
text:'我是根',
children:[{
text:'01',qtip:'我是鼠标提示',//如果有qtip属性,则必须要有Ext.QuickTips.init()这句话
children:[{
text:'01-01',
leaf:true //这里为true代表他下面已经没有子节点,不需要加载出来
},{
text:'01-02',
children:[{
text:'01-02-01',
leaf:true
},{
text:'01-02-02',
leaf:true
}]
},{
text:'01-03',
leaf:true,
href:"http://www.baidu.com",//通过点击节点,可以链接到一个地址
hrefTarget:'_blank'
}]
},
{
text:'02',
leaf:true,
icon:'user_female.png' //自定义节点的图标
}]
});
tree.setRootNode(root);
tree.render();
tree.on('dblclick',function(node){
Ext.Msg.alert('您刚刚双击了',node.text);
});
//右键菜单
var contextmenu = new Ext.menu.Menu({
id:'thecontextmenu',
items:[{
text:'选择',
handler: function() {
alert('你选择的是=' + tree.getSelectionModel().getSelectedNode().text + " 结点");
}
}]
});
//右键菜单显示
tree.on('contextmenu',function(node,e){
e.preventDefault();//防止浏览器弹出默认的右键菜单
node.select();//节点进入选中状态
contextmenu.showAt(e.getXY());
});
tree.on('click',function(node){
Ext.Msg.show({
title:'提示',
msg:'您点击了:'+node,
animEl:node.ui.textNode
});
});
root.expand();
Ext.QuickTips.init(); //初始化接点提示
tree.expandAll();//展开所有节点
});
</script>
注:body中应该有个<div id='tree'></div>,最好给其设置合适的高度,用来显示tree。
上面节点都是写死的。今天搞了下动态加载的,其实也不难,只是在dataUrl上写上你要提交到得url即可。
<script type="text/javascript">
Ext.onReady(function(){
var tree= new Ext.tree.TreePanel({
el:'tree',
loader:new Ext.tree.TreeLoader({dataUrl:'GetTreeServlet'})//'GetTreeServlet'是我在后台的servlet的名字
});
var root = new Ext.tree.AsyncTreeNode({text:'偶是根'});
tree.setRootNode(root);
root.expand();
tree.render();
//tree.expandAll();//展开所有节点
});
</script>
后台的java代码:
request.setCharacterEncoding("UTF-8");
response.setCharacterEncoding("UTF-8");
StringBuffer buffer = new StringBuffer();
/***
* 返回的内容要是这样:
* [
* {text:'根节点一',children:[
* {text:'根节点一一',leaf:true},
* {text:'根节点一二',leaf:true}
* ]},
* {text:'根节点二',leaf:true}
* ]
* **/
buffer.append("[");
buffer.append("{");
buffer.append("text:'根节点一',");
buffer.append("children:");
buffer.append("[");
buffer.append("{");
buffer.append("text:'根节点一一',leaf:true");
buffer.append("},");
buffer.append("{");
buffer.append("text:'根节点一二',leaf:true");
buffer.append("}");
buffer.append("]");
buffer.append("},");
buffer.append("{");
buffer.append("text:'根节点二',");
buffer.append("leaf:true");
buffer.append("}");
buffer.append("]");
response.getWriter().print(buffer.toString());
记得设定编码方式为"UTF-8"。页面效果如图
- 大小: 7.3 KB
分享到:
相关推荐
在本案例中,“extTree例子点击出现界面”指的是用户在浏览ExtTree时,通过点击节点可以触发一个交互式的操作,比如弹出一个新的界面或窗口。 在Ext JS中,`Ext.tree.Panel`(或简称为`TreePanel`)是用于创建树形...
`Ext.tree.TreeLoader`是Ext JS库中的一个组件,它负责加载和解析树形结构的数据,而JSON(JavaScript Object Notation)则是一种轻量级的数据交换格式,非常适合于在服务器和客户端之间传输数据。我们将通过实例...
"ext tree json 例子(不含EXT包)"这个标题暗示我们将讨论如何在不直接引用EXT完整包的情况下,仅使用EXT JS中关于TreePanel和JSON解析的部分来构建一个动态的树形结构。这可能涉及到手动引入EXT的核心组件,如...
在EXT JS这个强大的JavaScript框架中,TreePanel是用于展示层级数据的一个组件,它通常用于构建树形结构,例如文件系统、组织结构等。本主题主要关注EXT的TreePanel中的拖放(Drag and Drop)功能,这是一项允许用户...
在EXT JS框架中,"ext grid tree 应用"是一个常见的功能组合,它结合了Grid面板和Tree面板的优势,用于展示复杂的数据结构。Grid通常用于显示二维表格数据,而Tree则用于展示层次化的数据。在这个例子中,开发者通过...
总结来说,`Ext树例子`是关于如何使用ExtJS库中的`Ext.tree.Panel`组件来展示和操作层次化数据的一个主题。`tree1.txt`和`tree2.txt`文件提供了创建树的数据源,通过解析这些文件,我们可以构建出具有实际数据的交互...
EXT3.3是一个非常经典且强大的JavaScript框架,主要用于构建富客户端的Web应用程序。这个压缩包文件"多年积攒下来的EXT3.3例子大放送"显然包含了一系列EXTJS的示例代码,帮助开发者深入理解和应用EXTJS控件,以及...
"ExtDemo例子绝对能跑起来"这个标题表明我们将探讨一个关于ExtJS的示例项目,这个项目在正确配置和执行后,能够正常运行。 描述中的"ext ext例子"可能是由于输入错误,但我们可以理解为这是在强调ExtJS框架的实例。...
ExtJS Tree 需要的数据结构是一个 JSON 数组,每个元素代表树的一个节点。节点可以包含属性如 "cls"(样式类)、"id"(唯一标识)、"leaf"(是否为叶子节点)以及 "children"(子节点数组)。例如: ```javascript ...
EXT Tree 是一个强大的JavaScript组件,它是EXT JS框架的一部分,用于构建可交互的树形结构界面。EXT Tree在Web应用中广泛使用,特别是在需要展示层级关系数据的场景下,如文件系统、组织架构或导航菜单。这个"EXT ...
`Ext JS`的Tree组件是一个可扩展的树形结构,用于展示层级数据。在默认情况下,Tree的所有节点通常具有相同的交互行为。然而,根据业务需求,我们可能希望某些特定节点拥有独特的功能,这可以通过自定义右键菜单来...
extjs 可编辑的表格树,每个单元格自定义编辑组件,可以自适应列宽,只有源码与例子,运行实例要修改路径,不然图片不能显示,注意etree.jsp的js引入路径 支持Ext2.x以上版本 如运行不了EmailTo : codeme9@gmail....
EXT是一个强大的JavaScript库,主要用于构建富客户端Web应用。它提供了丰富的组件化UI元素,包括树形结构、表单、网格、日期选择器、消息框、下拉框和按钮等。以下是对这些组件的详细说明: 1. **树(Tree)**: ...
EXTJS是一个强大的JavaScript库,专用于构建富客户端Web应用程序。这个"Ext经典例子整合 快速上手必看"的资源包提供了多个EXTJS组件的示例,帮助开发者快速掌握EXTJS的核心概念和用法。以下是对每个示例及其相关知识...
首先,`Ext.Panel`是一个可配置的容器,它可以包含其他组件,如按钮、表格、表单等。它提供了丰富的布局管理,如`fit`布局(适合填充其父容器)、`border`布局(带有边框)等。动态加载本地数据到`Ext.Panel`通常...
在省市地区联动选择的例子中,我们可以创建一个模型,如`Region`,并用`acts_as_nested_set`来管理其层级关系。 首先,我们需要添加`acts_as_nested_set`到项目中。在Gemfile中加入以下行: ```ruby gem 'nested_...
Ext基本使用入门例子:包括布局,窗口,Tab,Tree,grid等,后台使用Servlet。可以直接在MyEclipse6中运行。
EXTJS 提供了一个名为`Ext.dd.DragDrop`的接口,它使得在界面上的元素可以被拖动和放置。这个接口包含了拖放所需的所有基本功能,包括鼠标事件处理、拖动过程中的视觉反馈和目标检测等。在EXTJS 中,控件(如面板、...
EXT是一个强大的JavaScript库,主要用于构建富客户端Web应用。在EXT框架中,Treepanel和Gridpanel是两个核心组件,它们分别用于展示和操作树形结构数据以及表格数据。本示例将详细介绍如何在EXT中加载数据,特别是...
EXT是一个强大的JavaScript库,主要用于构建富客户端Web应用。EXT的核心在于其组件模型,它提供了大量预先封装好的用户界面组件,如表格、面板、菜单、工具栏等,使得开发者能够快速构建出美观且功能丰富的交互式...