`
clq9761
  • 浏览: 592823 次
  • 性别: Icon_minigender_1
  • 来自: 福建
社区版块
存档分类
最新评论

Ext树状结构展示示例代码

    博客分类:
  • Ext
阅读更多

以下为项目应用中的一些示例代码,供以后应用参考。

 

一.普通树状结构展示

 

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动态树的完整示例代码

    在这个名为“Y梨Ext动态树的完整示例代码”的压缩包中,我们很可能会找到一个完整的EXTJS应用,展示了如何动态加载和操作树节点。 树形组件在很多场景下都非常实用,如文件系统导航、组织结构图、菜单系统等。EXTJS...

    ext 下拉树 ext2

    下拉树是UI设计中一个实用的元素,它将传统下拉列表与树形结构相结合,用户在下拉框中可以看到层次化的选项,这在需要展示多级分类或者有层级关系的数据时非常有用。例如,在选择国家/地区、组织架构或产品分类等...

    Ext3_TreeGrid:Ext树状表格

    在压缩包`Ext3_TreeGrid-master`中,可能包含了示例代码、CSS样式文件、JavaScript库以及必要的配置文件,用于展示和学习如何在项目中使用Ext3_TreeGrid。通过研究这些文件,你可以更深入地了解其工作原理和用法。 ...

    ext-tree.rar_ext_ext tr_ext tre_ext.tr_ext.tree

    它允许用户以树状结构来查看和操作数据,这对于组织和管理具有层级关系的信息非常有用。右键菜单的实现通常涉及到监听鼠标事件,特别是`contextmenu`事件,然后创建一个包含所需操作(如增删改查)的菜单。这些操作...

    EXT教程EXT用大量的实例演示Ext实例

    Ext的树形控件非常实用,开发者可以利用它实现复杂的树状结构,用于展示层次化数据。在Ext 2.0中,树形控件的实现方式与1.x版本有很大不同。Ext提供了丰富的事件来检测树形结构中的各种行为,并支持自定义节点图标、...

    Ext下拉树、下拉表格

    这两种组件都是在输入框中展示可选择的列表,但呈现形式不同,下拉树以树状结构显示数据,而下拉表格则以表格形式呈现。 下拉树(ComboBox with Tree): 在Ext中,下拉树是将传统的下拉列表与树形控件相结合的一种...

    ext 下拉树demo

    在IT领域,"ext 下拉树demo"是一个典型的前端开发示例,主要用于构建用户界面,特别是在数据管理和展示层级结构时。EXT是一个强大的JavaScript框架,它提供了丰富的组件库,包括下拉树(TreePicker)这样的控件。这...

    Ext树创建说明.rar

    以下是一个简单的创建Ext树的示例代码: ```javascript Ext.application({ name: 'MyApp', launch: function () { var store = Ext.create('Ext.data.TreeStore', { model: 'NodeModel', root: { text: '根...

    EXT grid 表头 三层 插件

    博客链接可能提供了关于EXT Grid表头三层插件的具体实现方法和示例代码,建议读者访问该链接获取更多信息和实践指导。 在压缩包文件"EXT表头三层插件"中,可能包含了实现这一功能的源代码、示例文件以及相关的文档...

    EXTJS动态树的实现举例示例代码

    在"langsinext"这个压缩包中,可能包含了一个完整的EXTJS动态树实现示例代码,你可以解压后查看具体实现细节,学习如何将上述概念应用到实践中。记得根据你的实际需求调整数据源、模型字段以及TreePanel的配置。

    EXT实现动态树的功能

    TreePanel是EXT中用于展示树状结构数据的核心组件,它可以动态加载数据并提供多种交互方式。创建一个动态树的第一步是实例化一个TreePanel,并配置其属性,如根节点、数据源以及节点的渲染样式等。 ```javascript ...

    Ext3.0 api帮助文档

    这个API帮助文档包含了详细的功能说明、示例代码和类库结构,帮助开发者更好地理解和利用Ext3.0的功能。 1. **基本概念** - **组件(Components)**: Ext3.0的核心是组件系统,它包括了各种类型如表格、面板、窗口...

    ext 级联选择的树形控件

    在提供的压缩包文件"ext-tree"中,可能包含了示例代码、CSS样式和JavaScript文件,用于演示如何创建和使用带有级联选择功能的EXT Tree Panel。通过查看和学习这些文件,你可以了解EXT Tree Panel的配置方法以及如何...

    Ext用户扩展控件-----树形表格

    首先,树形表格的核心在于它将数据组织成树状结构,每个节点可以展开或折叠,显示其子节点。这种布局方式适用于展示具有层级关系的数据,如文件系统、组织架构或产品类别等。而"Ext用户扩展控件"则意味着开发人员...

    ext js 下拉树

    下拉树(Dropdown Tree)是Ext JS中的一种特殊控件,它结合了下拉列表和树结构的功能,通常用于展示层次化的数据,并让用户从中选择一个或多个项。 下拉树的基本结构由两部分组成:一个文本框和一个关联的下拉面板...

    Ext4.2可增删树例子

    TreePanel是Ext中用于展示树形结构的组件,它允许我们定义节点的层级关系,每个节点可以通过配置项定义其属性,如text(节点文本)、icon(图标)、leaf(是否为叶子节点)等。在默认情况下,leaf属性一旦设定,就...

    EXT动态树工程,例子学习

    动态树是一种数据可视化工具,它允许用户以树状结构展示数据。在EXT中,动态树常用于展示层级关系的数据,如文件系统、组织结构或者导航菜单等。这种组件的优势在于它的交互性,可以添加、删除、展开和折叠节点,...

    ssh+ext+json+dwr技术实现的动态树

    在本例中,DWR可能被用来在后台处理数据,然后通过JSON将结果返回给EXT JS的动态树组件,这样用户就能看到实时更新的树状结构,而无需整个页面刷新。 综上所述,这个项目展示了如何利用SSH框架搭建后端服务,EXT JS...

    在VS下利用Ext4.2的TreePanel的简单demo

    7. **SecondTree**:在提供的文件列表中有一个名为"SecondTree"的文件,这可能是一个扩展或示例代码,用于展示更复杂或特定的树结构。可以结合这个文件,进一步完善或扩展我们的TreePanel demo。 通过以上步骤,...

Global site tag (gtag.js) - Google Analytics