`
iloveoracle
  • 浏览: 118841 次
  • 性别: Icon_minigender_1
  • 来自: 南京
社区版块
存档分类
最新评论

ExtJs Drag and Drop tree to grid

    博客分类:
  • java
阅读更多
    原文地址在这里,英语不太好,还是没看太明白。。点这里
 
代码如下:
 
dnd_tree_to_grid.js
 
ext.onready(function(){	      var mydata = {	      	        records : [      	      	              { name : "rec 0", column1 : "0", column2 : "0" },            	      	              { name : "rec 1", column1 : "1", column2 : "1" },            	      	              { name : "rec 2", column1 : "2", column2 : "2" },            	      	              { name : "rec 3", column1 : "3", column2 : "3" },            	      	              { name : "rec 4", column1 : "4", column2 : "4" },            	      	              { name : "rec 5", column1 : "5", column2 : "5" },            	      	              { name : "rec 6", column1 : "6", column2 : "6" },            	      	              { name : "rec 7", column1 : "7", column2 : "7" },            	      	              { name : "rec 8", column1 : "8", column2 : "8" },            	      	              { name : "rec 9", column1 : "9", column2 : "9" }    	      	                  ]  	      	                    };    // generic fields array to use in both store defs.    	      var fields = [       	      {name: 'name', mapping : 'name'},       	      {name: 'column1', mapping : 'column1'},       	      {name: 'column2', mapping : 'column2'}  	        ];        // create the data store    	      var firstgridstore = new ext.data.jsonstore({     	      	   fields : fields,        	      	   data   : mydata,        	      	   root   : 'records'    	      	   });        // column model shortcut array    	      var cols = [     	         { id : 'name', header: "record name", width: 160, sortable: true, dataindex: 'name'},        	         {header: "column1", width: 50, sortable: true, dataindex: 'column1'},        	         {header: "column2", width: 50, sortable: true, dataindex: 'column2'}    	         ];        // declare the source grid  	      var firstgrid = new ext.grid.gridpanel({    	      	    ddgroup          : 'secondtreeddgroup',        	      	    store            : firstgridstore,        	      	    columns          : cols,        	      	            //enabledragdrop   : false,        	      	    striperows       : true,        	      	    istarget : true,        	      	    autoexpandcolumn : 'name',        	      	    width            : 325,        	      	    region           : 'west',        	      	    title            : 'first grid'    	      	    });        	      var root = new ext.tree.asynctreenode({    	      	   text: 'main menu',       	      	   draggable:false,       	      	   id:'source'   	     });       	     var firsttree = new ext.tree.treepanel({   	     	     autoscroll:true,        	     	     animate:true,        	     	     enabledd:true,        	     	     ddgroup: 'secondtreeddgroup',        	     	     containerscroll: true,         	     	     region : 'center',        	     	     root: root,        	     	     loader: new ext.tree.treeloader({            	     	     dataurl:'multisel-data.json'        	     	     })    	     	     });    	     var blankrecord =  ext.data.record.create(fields);    //simple 'border layout' panel to house both grids    	     var displaypanel = new ext.panel({    	     	    width    : 650,        	     	    height   : 300,        	     	    layout   : 'border',        	     	    renderto : 'panel',        	     	    items    : [       	     	         firstgrid,            	     	         firsttree    	     	             ]    	     	             });    	     var secondgriddroptargetel = firstgrid.getview().el.dom.childnodes[0].childnodes[1] 	     var destgriddroptarget = new ext.dd.droptarget(secondgriddroptargetel, {    	     	    ddgroup    : 'secondtreeddgroup',        	     	    copy       : false,        	     	    notifydrop : function(ddsource, e, data){                    	     	    	var record = new blankrecord({                        	     	    		name     : ddsource.dragdata.node.attributes.text,                        	     	    		column1  : ddsource.dragdata.node.attributes.id,                        	     	    		column2  : ddsource.dragdata.node.attributes.cls           	     	    		         });                    	     	    		   firstgridstore.add(record);       	     	    		        return(true);               	     	    		         }  	     	    		           });	     	     }); 
 
html
 
 
<html><head>    <meta http-equiv="content-type" content="text/html; charset=utf-8" />    <title>multiselect &amp;amp; itemselector</title>    <link rel="stylesheet" type="text/css" href="../extjs/resources/css/ext-all.css" />    <script type="text/javascript" src="../extjs/adapter/ext/ext-base.js"></script>    <script type="text/javascript" src="../extjs/ext-all-debug.js"></script>    <script type="text/javascript" src="dnd_tree_to_grid.js"></script></head><body></body><div id="panel"></div>            <div id="contactspanel"></div></html>
 
 multisel-data.json
 
 
[{    text:'multiselection example',    id:'0',    cls:'master-text',    iconcls:'text-folder',    children:[{        text:'abstract rendering in treenodeui',        leaf:true,        iconcls:'text'    },{        text:'create treenodeui with column knowledge',        leaf:true,        iconcls:'text'    },{        text:'create treepanel to render and lock headers',        leaf:true,        iconcls:'text'    },{        text:'add css to make it look fly',        leaf:true,        iconcls:'text'    },{        text:'test and make sure it works',        leaf:true,        iconcls:'text'    }]}]
 
 
[img]/upload/attachment/76551/fcab7c8b-f880-3110-bb88-70311486197d.jpg" alt="[/img]
 
 
0
1
分享到:
评论

相关推荐

    ExtJS4官方指南翻译:DragandDrop拖放/Grid组件/Tree组件/容器与布局

    在"ExtJS4官方指南翻译:DragandDrop拖放/Grid组件/Tree组件/容器与布局"中,我们将会探讨以下几个核心概念: 1. **Drag and Drop(拖放)**: ExtJS4提供了完善的拖放支持,允许用户通过鼠标操作在界面上移动元素...

    Ext中拖拽Tree2Grid , 清空表格拖拽失效的解决办法>.<

    首先,EXTJS的Tree组件和Grid组件提供了内置的拖放(Drag and Drop,简称D&D)支持。Tree组件通常用于展示层级结构的数据,而Grid组件则常用于展示表格数据。将Tree中的节点拖放到Grid中,可以实现数据的转移或关联...

    extjs tree 学习资料

    8. **拖放功能(Drag and Drop)** - 可以启用拖放功能,允许用户重新排列节点,使用`ddGroup`,`enableDragDrop`等配置项。 - 实现拖放需要扩展`Ext.dd.DragSource`和`Ext.dd.DropTarget`。 9. **自定义节点模板...

    extjs表格Grid比较全面的功能

    10. **拖放排序(Drag-and-Drop Sorting)** ExtJS Grid支持拖放功能,用户可以调整列顺序,或者将数据行拖动到不同的组或位置。 11. **组合列(Grouping Columns)** 数据可以按需分组,显示折叠/展开的层次结构...

    Extjs3.1.0

    9. **Drag & Drop**:框架支持拖放操作,可轻松实现组件间的交互。 10. **主题支持**:ExtJS 3.1.0提供多套皮肤,可以改变应用的整体外观。 总的来说,ExtJS 3.1.0为开发者提供了一套完整的工具集,用于创建功能...

    ExtJs3.0中文文档

    11. **拖放(Drag & Drop)**:内置的拖放API使得元素间拖放操作变得简单易用。 12. **AJAX请求(Ajax Request)**:通过Ext.Ajax对象,可以发送XMLHttpRequest请求,处理JSON、XML等多种数据格式。 13. **数据包...

    extjs.3.0中文API

    1. DND(Drag and Drop):支持元素拖放操作,可以创建复杂的拖放交互。 2. 动画(Animations):通过Ext.fx API实现平滑的动画效果。 3. 工具提示(Tooltips)和提示框(Tips):提供信息提示功能。 4. 国际化...

    Extjs3.0 pdf

    此外,文档可能还会讨论Ajax请求、数据绑定、布局管理(Layouts)以及拖放(Drag & Drop)功能。布局管理器允许开发者轻松地组织和调整组件的大小和位置,而拖放功能则增强了应用的交互性。 对于高级话题,如树形...

    extjs4.0整套开发工具

    4. **可拖放(Drag and Drop)**:增强了拖放功能,使得在界面上移动和排列组件变得更加简单。 5. **动画(Animations)**:EXTJS 4.0 加强了动画效果,允许开发者创建平滑的过渡和动画,提升用户体验。 6. **新组件...

    ExtJs3.1目前所有例子源代码

    - **Drag Source** 和 **Drop Target**:定义可拖动和接收拖动的元素,实现元素间的拖放操作。 8. **Ajax和数据通信** - **Ajax请求(Ext.Ajax)**:封装了XMLHttpRequest对象,提供异步发送和接收数据的API。 -...

    extjs2.0源文件

    7. **Drag and Drop**:EXTJS支持拖放操作,使得用户可以轻松地在组件之间移动元素,增强了交互性。 8. **Widgets and UI Components**:EXTJS提供了大量的预定义组件,如按钮、工具栏、菜单、提示框、进度条等,...

    extjs电子教材,开发extjs框架的好东西

    10. **拖放(Drag & Drop)**:EXTJS支持组件间的拖放操作,增强用户体验,实现更直观的交互。 本电子教材会详细介绍EXTJS的这些核心特性和使用方法,帮助开发者快速掌握EXTJS框架。对于初学者来说,学习EXTJS不仅...

    Ext实现的拖拽树和表格之间的拖拽

    实现拖拽功能,我们需要使用ExtJS提供的DD(Drag and Drop)API。DD API包括几个关键类,如DragSource、DropTarget、DDProxy等,它们协同工作以实现拖放行为。在树和表格之间进行拖拽,我们需要配置这两个组件以支持...

    很绚丽的EXTJS例子

    7. **Drag & Drop**:支持拖放操作,使得用户可以更直观地与界面交互。 8. **Window and Dialogs**:可以创建弹出窗口和对话框,用于显示独立的交互内容。 9. **Viewport**:EXTJS的视口组件可以根据浏览器窗口大小...

    extjs前端开发手册以及结构框架

    10. **Drag and Drop**: 支持拖放操作,便于构建具有交互性的应用,如文件管理器等。 EXTJS的前台开发部分通常涉及以下步骤: 1. **项目初始化**: 使用EXTJS的命令行工具(Sencha CMD)生成项目结构,包括基本的...

    ExtJS in Action

    8. **拖放与小部件(Drag and Drop with Widgets)** - 拖放是一种直观的交互方式,允许用户通过鼠标将对象从一个位置移动到另一个位置。小部件是指可以被拖放的组件。 #### 四、面向对象编程与复合组件 **部分内容...

    extjs in action

    拖放(Drag and Drop)是一种直观的用户交互方式,ExtJS的小部件(Widget)提供了实现这一功能的机制,允许用户通过拖动对象来完成各种操作,如重新排序列表项或移动组件位置。 ### 4. 构建可配置的复合组件 书中还...

    EXTJS 3 中文API手册

    7. **拖放(Drag & Drop)功能**:EXTJS 3实现了标准的HTML5拖放API,可以轻松创建可拖放的组件,增强了用户交互体验。 8. **树形(Tree)组件**:EXTJS 3的树形组件允许展示和操作层次结构的数据,支持节点的展开...

    ExtJs3.0中文API

    - **Drag & Drop**: 支持元素的拖放操作,可应用于列表、树等组件。 - **ToolTips**: 提示框组件,用于显示鼠标悬停时的额外信息。 - **Ajax Grid**: 支持从服务器动态加载数据的网格组件。 - **Charts**: 图表...

    Ext中文API + sample

    例如,可能会有展示如何创建一个基本的网格(Grid)来显示和编辑数据,如何实现拖放操作(Drag and Drop),如何使用图表(Charts)进行数据可视化,或是如何自定义组件(Component)来满足特定需求。通过这些实例,...

Global site tag (gtag.js) - Google Analytics