以下为项目应用中的一些示例代码,供以后应用参考。
一.普通树状结构展示
1.前台JS代码
ccs.consultation.deptTreePanel = Ext.extend(Ext.Panel, {
title:'组织结构',
layout : 'fit',
id:'deptTreePanel',
height : 312,
border:false,
initComponent : function() {
// 组织树
var loader = new Ext.tree.DWRTreeLoader({
dataUrl: biDeptService.getDeptByUpDeptCode
});
loader.on('beforeload',function(treeLoader,node){
treeLoader.baseParams.id = node.attributes.id;
},this);
var root =new Ext.tree.AsyncTreeNode({
id:sessionObj.firstDeptCode,
text:sessionObj.firstDeptName,
href:'',
hrefTarget:'_blank'
});
var tree = new Ext.tree.TreePanel({
autoScroll: true,
border:false,
animate: false,
enableDD: false,
containerScroll: true,
root:root,
loader:loader,
id:'deptTreePanelTree'
});
tree.addListener('click',function(node,e){
var deptCode = node.attributes.id;
//查询人员
var params = {};
params.deptCode = deptCode;
var store = Ext.getCmp('csPersonViewGrid').getStore();
store.baseParams = {};//清空参数
Ext.apply(store.baseParams,params);
store.load();
});
this.items = [tree];
this.tbar = [{
text : '展开',
handler : function() {
tree.expandAll();
}
}, {
text : '合拢',
handler : function() {
tree.collapseAll();
}
}];
ccs.consultation.deptTreePanel.superclass.initComponent.call(this);
}
})
2.后台Java代码
public List getDeptByUpDeptCode(String id) {
String upDeptCode = id;
List list = biDeptDao.getDeptByUpDeptCode(upDeptCode);
List treeList = new ArrayList();
for (int i = 0; i < list.size(); i++) {
BiDept biDept = (BiDept)list.get(i);
TreeNode node = new TreeNode();
node.setId(biDept.getDeptCode());
node.setText(biDept.getDeptName());
node.setLeaf(false);
treeList.add(node);
}
return treeList;
}
TreeNode是自己定义的java类,含id,text,leaf等相关属性。
二.带选择框的树形结构展示
1.带选择框树结构展示代码
Ext.onReady(function(){
var Tree = Ext.tree;
var tree = new Tree.TreePanel({
el:'tree-div',
useArrows:true,
autoScroll:true,
animate:true,
enableDD:true,
containerScroll: true,
loader: new Tree.TreeLoader({
dataUrl:'0005_checkbox_reorder_tree.php'
})
});
// 选中父节点的checkbox后,自动选中子节点
tree.on('checkchange', function(node, checked) {
node.expand();
node.attributes.checked = checked;
node.eachChild(function(child) {
child.ui.toggleCheck(checked);
child.attributes.checked = checked;
child.fireEvent('checkchange', child, checked);
});
}, tree);
// set the root node
var root = new Tree.AsyncTreeNode({
text: 'Ext JS',
draggable:false,
id:'source'
});
tree.setRootNode(root);
// render the tree
tree.render();
root.expand();
});
2.显示选中的岗位
buttons : [{
text : '显示选中的岗位',
handler : function() {
var msg = '', selNodes = tree.getChecked();
Ext.each(selNodes, function(node) {
if (msg.length > 0) {
msg += ', ';
}
msg += node.text;
});
Ext.Msg.show({
title : '选中岗位:',
msg : msg.length > 0 ? msg : '无',
icon : Ext.Msg.INFO,
minWidth : 200,
buttons : Ext.Msg.OK
});
}
}]
});
要在树上展现checkbox,只需要在返回来的json数据中加上 checked 项(为true/false)。
返回的json数据如下:
[{"cls":"folder","id":10,"leaf":false,checked:false,
"children":[{"cls":"file","id":11,"leaf":true,
checked:false,"children":null,"text":"S600"},
{"cls":"file","id":12,"leaf":true,
checked:false,"children":null,"text":"SLK200"}],
"text":"Benz"}]
分享到:
相关推荐
在这个名为“Y梨Ext动态树的完整示例代码”的压缩包中,我们很可能会找到一个完整的EXTJS应用,展示了如何动态加载和操作树节点。 树形组件在很多场景下都非常实用,如文件系统导航、组织结构图、菜单系统等。EXTJS...
下拉树是UI设计中一个实用的元素,它将传统下拉列表与树形结构相结合,用户在下拉框中可以看到层次化的选项,这在需要展示多级分类或者有层级关系的数据时非常有用。例如,在选择国家/地区、组织架构或产品分类等...
在压缩包`Ext3_TreeGrid-master`中,可能包含了示例代码、CSS样式文件、JavaScript库以及必要的配置文件,用于展示和学习如何在项目中使用Ext3_TreeGrid。通过研究这些文件,你可以更深入地了解其工作原理和用法。 ...
它允许用户以树状结构来查看和操作数据,这对于组织和管理具有层级关系的信息非常有用。右键菜单的实现通常涉及到监听鼠标事件,特别是`contextmenu`事件,然后创建一个包含所需操作(如增删改查)的菜单。这些操作...
Ext的树形控件非常实用,开发者可以利用它实现复杂的树状结构,用于展示层次化数据。在Ext 2.0中,树形控件的实现方式与1.x版本有很大不同。Ext提供了丰富的事件来检测树形结构中的各种行为,并支持自定义节点图标、...
这两种组件都是在输入框中展示可选择的列表,但呈现形式不同,下拉树以树状结构显示数据,而下拉表格则以表格形式呈现。 下拉树(ComboBox with Tree): 在Ext中,下拉树是将传统的下拉列表与树形控件相结合的一种...
在IT领域,"ext 下拉树demo"是一个典型的前端开发示例,主要用于构建用户界面,特别是在数据管理和展示层级结构时。EXT是一个强大的JavaScript框架,它提供了丰富的组件库,包括下拉树(TreePicker)这样的控件。这...
以下是一个简单的创建Ext树的示例代码: ```javascript Ext.application({ name: 'MyApp', launch: function () { var store = Ext.create('Ext.data.TreeStore', { model: 'NodeModel', root: { text: '根...
博客链接可能提供了关于EXT Grid表头三层插件的具体实现方法和示例代码,建议读者访问该链接获取更多信息和实践指导。 在压缩包文件"EXT表头三层插件"中,可能包含了实现这一功能的源代码、示例文件以及相关的文档...
在"langsinext"这个压缩包中,可能包含了一个完整的EXTJS动态树实现示例代码,你可以解压后查看具体实现细节,学习如何将上述概念应用到实践中。记得根据你的实际需求调整数据源、模型字段以及TreePanel的配置。
TreePanel是EXT中用于展示树状结构数据的核心组件,它可以动态加载数据并提供多种交互方式。创建一个动态树的第一步是实例化一个TreePanel,并配置其属性,如根节点、数据源以及节点的渲染样式等。 ```javascript ...
这个API帮助文档包含了详细的功能说明、示例代码和类库结构,帮助开发者更好地理解和利用Ext3.0的功能。 1. **基本概念** - **组件(Components)**: Ext3.0的核心是组件系统,它包括了各种类型如表格、面板、窗口...
在提供的压缩包文件"ext-tree"中,可能包含了示例代码、CSS样式和JavaScript文件,用于演示如何创建和使用带有级联选择功能的EXT Tree Panel。通过查看和学习这些文件,你可以了解EXT Tree Panel的配置方法以及如何...
首先,树形表格的核心在于它将数据组织成树状结构,每个节点可以展开或折叠,显示其子节点。这种布局方式适用于展示具有层级关系的数据,如文件系统、组织架构或产品类别等。而"Ext用户扩展控件"则意味着开发人员...
下拉树(Dropdown Tree)是Ext JS中的一种特殊控件,它结合了下拉列表和树结构的功能,通常用于展示层次化的数据,并让用户从中选择一个或多个项。 下拉树的基本结构由两部分组成:一个文本框和一个关联的下拉面板...
TreePanel是Ext中用于展示树形结构的组件,它允许我们定义节点的层级关系,每个节点可以通过配置项定义其属性,如text(节点文本)、icon(图标)、leaf(是否为叶子节点)等。在默认情况下,leaf属性一旦设定,就...
动态树是一种数据可视化工具,它允许用户以树状结构展示数据。在EXT中,动态树常用于展示层级关系的数据,如文件系统、组织结构或者导航菜单等。这种组件的优势在于它的交互性,可以添加、删除、展开和折叠节点,...
在本例中,DWR可能被用来在后台处理数据,然后通过JSON将结果返回给EXT JS的动态树组件,这样用户就能看到实时更新的树状结构,而无需整个页面刷新。 综上所述,这个项目展示了如何利用SSH框架搭建后端服务,EXT JS...
7. **SecondTree**:在提供的文件列表中有一个名为"SecondTree"的文件,这可能是一个扩展或示例代码,用于展示更复杂或特定的树结构。可以结合这个文件,进一步完善或扩展我们的TreePanel demo。 通过以上步骤,...