`
sky_若海
  • 浏览: 12868 次
  • 性别: Icon_minigender_1
  • 来自: 保定
文章分类
社区版块
存档分类
最新评论

extjs实现treepanel到panel布局的拖拽

阅读更多




一下是树的实现代码:
var mytree=new Ext.tree.TreePanel({
			
		    animate:true,// 以动画形式伸展,收缩子节点
		   enableDD: true,
		   ddGroup:'mygroup',
		   rootVisible:true,// 是否显示根节点
		   autoScroll:true,
		   bodyStyle: 'background-color: #dfe8f6;',
		   height:300,
		   width:180,
		   renderTo : 'treePanel',
		   lines:true,// 节点之间连接的横竖线
		   dataUrl:getWebRoot()+"/jsp/splitScreen/getAppuserStations.faces",
		   root:{
				nodeType: 'async',
				draggable: false,
				expand:true,
		   id:"root",
		       text:"台站功能"
			}
		    
	});

以下是panel布局的实现代码:
var tablePanel = new Ext.Panel({
		
		id: 'splitScreenPanel',
		border: false,
		renderTo:'tablePanel',
		layout: {
			type: 'vbox',
			align: 'stretch'
		},
		defaults: {
			bodyStyle: 'background-color: #dfe8f6;'
			
		},
		frame:true,
		height:300,
		width:300,
		items: [{
			flex:0.3,
			layout: {
				type: 'hbox',
				align: 'stretch'
			},
			defaults: {
				frame:true
			},	
			items:[myForm]
			},{
			flex: 1,
			layout: {
				type: 'hbox',
				align: 'stretch'
			},
			margins: '0 0 5 0',
			defaults: {
				ddGroup: 'mygroup',
				tools:getTools,
				listeners: {
					render:renderHander
				},	
				frame:true
			},
			items: [{
				id: 'Screen1',
				title: '一',
				flex: 1,
				margins: '0 5 0 0',
				html : "<div id='div1'></div>"
			}, {
				id: 'Screen2',
				title: '二',
				flex: 1,
				html : "<div id='div2'></div>"
			}]
		}]
	});
	if(splitNum==4){
		tablePanel.add({
			flex: 1,
			layout: {
				type: 'hbox',
				align: 'stretch'
			},
			defaults: {
				ddGroup: 'mygroup',
				tools:getTools,
				listeners: {
					render:renderHander
				},	
				frame:true
			},
			items: [{
				id: 'Screen4',
				title: '三',
				flex: 1,
				margins: '0 5 2 0',
				html : "<div id='div4'></div>"
			}, {
				id: 'Screen5',
				title: '四',
				flex: 1,
				margins: '0 0 2 0',
				html : "<div id='div5'></div>"
			}]
		});
	}else{
		tablePanel.add({
				flex: 1,
				layout: {
				type: 'hbox',
				align: 'stretch'
			},
			defaults: {
				ddGroup: 'mygroup',
				tools:getTools,
				listeners: {
				render:renderHander
			},	
			frame:true
			},
			items: [{
				id: 'Screen3',
				title: '三',
				flex: 1,
				margins: '0 0 2 0',
				html : "<div id='div3'></div>"
			}]
		});
	}
	tablePanel.doLayout();
动态实现了分几块。
分屏上的按钮:
var getTools= [{
				id: 'search',
				qtip: '编辑',
				handler: function(event, toolEl, panel) {
										searchConditionWin.show();	
				}	
			},{	id: 'close',
				qtip: '删除',
				handler: function(event, toolEl, panel) {
					getDefault(panel.id);
			    }
			 }
		];

拖动处理函数:
var renderHander = function(cmp) {
		new Ext.dd.DropTarget(cmp.body.dom, {
			ddGroup: 'mygroup',
			notifyDrop: function(ddSource, e, data) {
				if (!data.node.hasChildNodes()) {
					cmp.setTitle(data.node.parentNode.attributes.text);
									}
				return true;
			}
		});
	};

主要实现就是把要拖动的东西放到一个组里,然后加上一个拖动处理函数
  • 大小: 14 KB
  • 大小: 16.5 KB
0
0
分享到:
评论

相关推荐

    Extjs实现下拉菜单效果

    在本篇文章中,我们将详细了解如何使用ExtJS框架实现具有下拉树功能的下拉菜单效果。ExtJS是一个成熟的JavaScript框架,用于创建交互式的Web应用程序,提供了一整套丰富的用户界面组件,其下拉树组件是其众多组件之...

    ExtJs树例子

    在"ExtJs树例子"这个主题中,我们主要关注的是ExtJS如何实现树形控件(Tree Panel)。 树形控件在Web应用中广泛用于展示层次结构的数据,比如文件系统、组织架构或菜单导航。ExtJS提供了一个完善的TreePanel组件来...

    EXTjs 简单布局实例

    menuTree:new Ext.tree.TreePanel({ title:'功能菜单', region:'west', bodyStyle:'background:transparent url(images/default/panel/group-lr.gif) repeat-x 0 bottom;', id:'extExample-tree', autoScroll:true, ...

    Extjs树Demo

    在ExtJS中,树形结构是通过`Ext.tree.Panel`或`Ext.tree.View`来实现的,它们提供了丰富的配置选项和事件处理。 1. **创建树结构**:在ExtJS中,树的数据源通常是一个JSON对象或Store,其中包含了节点的信息,如ID...

    Ext实现的拖拽树的测试例子

    在ExtJS中,树形组件(TreePanel)是一种用于展示层次结构数据的控件,而拖拽功能则可以通过Ext.dd.DD或Ext.dd.DDProxy类来实现。 1. **创建拖拽树** - 初始化树:首先,我们需要创建一个TreePanel实例,设置其...

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

    3. **创建TreePanel**:创建一个`Ext.tree.Panel`,设置`store`属性为刚才创建的`TreeStore`,并定义其他必要配置,如列显示、可拖拽等。例如: ```javascript var treePanel = Ext.create('Ext.tree.Panel', { ...

    extjs的快速入门教程

    - 布局管理是ExtJS中一个重要特性,用于控制组件的排列方式。 - **常见布局类型**: - **Border区域布局**: 将容器划分为多个区域(顶部、底部、左侧、右侧和中心)。 - **Column列布局**: 按列排列组件。 - **...

    ExtJS基础教程.pdf

    1. **布局类**:包括容器布局(Container Layout)、绝对定位布局(Absolute Layout)、手风琴布局(Accordion)、锚点布局(Anchor Layout)、边框布局(Border Layout)、卡片布局(Card Layout)、列布局(Column Layout)、...

    extjs相关

    **BorderLayout** 是ExtJS中的一个布局管理器,它将容器划分为五个部分:北、南、东、西和中心区域。每个区域都可以包含一个组件。例如,在文件中提到了 `layout: 'accordion'`,这是在 **West** 区域使用的一种特殊...

    Extjs帮助文档.pdf

    接下来将详细介绍文档中提到的几个核心概念,包括`Ext.MessageBox`、`Ext.Panel`、`Ext.Window`、`Ext.FormPanel`、`Ext.TabPanel`、`Ext.XTemplate`和`Ext.TreePanel`以及如何在Extjs中实现主题(换肤)功能。...

    Extjs xtype集合

    ### Extjs xtype集合详解 #### 一、基本概念与背景 在Extjs开发过程中,`xtype`(扩展类型)是极为重要的一个概念。它实际上是一种类型标识符,用于快速创建特定类型的组件实例。通过使用预定义的`xtype`值,...

    Ext+3[1].0+中文API

    4. **布局管理**:EXTJS拥有多种布局方式,如Fit布局、Border布局、Table布局等,可以根据需要灵活设置容器的布局模式。 5. **强大的表格功能**:EXTJS的Grid组件支持分页、排序、过滤、拖放等功能,可以处理大量...

    ext_动态树型的实现

    ### 使用ExtJS实现动态树型结构 #### 一、引言 在Web应用开发中,树形结构(Tree)是一种非常常见的数据展示形式,尤其是在文件管理系统、目录浏览等场景下。ExtJS作为一款功能强大的JavaScript库,提供了丰富的UI...

    ExtJS的xtype列表

    ExtJS 是一个强大的JavaScript应用程序框架,它提供了丰富的用户界面组件,用于构建富客户端应用。`xtype` 是ExtJS中的一个重要概念,它是组件类的简写形式,用于在配置对象中声明组件类型,使得代码更加简洁。理解...

    ExtJs_xtype一览

    在ExtJs框架中,`xtype`是一种用于标识组件类型的字符串,它定义了组件的类。这个特性使得在创建UI时能够简洁地指定组件的类型,而无需直接实例化具体的类。以下是一些主要的`xtype`及其对应的组件类和功能的详细...

    extjs控件列表

    ### ExtJS控件详解 #### 基本组件 **Ext.Button** - **描述**: 提供了一种标准的用户交互方式,通常用于触发特定事件或功能。 - **用途**: 创建按钮,可以设置图标、文本、工具提示等。 **Ext.SplitButton** - **...

    31总结1

    5. **Panel** - 布局容器,可以包含其他组件,提供标题、工具栏、滚动条等特性。 ExtJS也是一套强大的前端框架,其组件包括: 1. **Window** - 弹出窗口,类似Dialog,但功能更加强大,支持拖拽、最大化等操作。 2...

    Ext表格控件和树控件

    这些事件可以通过绑定到 `TreePanel` 实例上进行监听和处理。 ##### 5.3 树加载器 `TreeLoader` 树加载器负责加载树结构的数据。它可以是同步加载或异步加载。在上面的示例中,`TreeLoader` 从 `data.json` 文件...

Global site tag (gtag.js) - Google Analytics