拖拽是一个提升用户体验的一个特色功能,虽然不是必需的,但如果添加上此功能,必然就立马变得高大上了,有木有。Grid与Grid之间的数据拖拽是由gridviewdragdrop插件,官方源码已经内置了该插件,无须自己实现,进行一些简单配置就完事儿了。下面是示例代码:
Ext.require([ 'Ext.grid.*', 'Ext.data.*', 'Ext.dd.*' ]); Ext.define('DataObject', { extend: 'Ext.data.Model', fields: ['name', 'column1', 'column2'] }); Ext.onReady(function(){ var myData = [ { 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" } ]; // create the data store var firstGridStore = Ext.create('Ext.data.Store', { model: 'DataObject', data: myData }); // Column Model shortcut array var columns = [ {text: "Record Name", flex: 1, sortable: true, dataIndex: 'name'}, {text: "column1", width: 70, sortable: true, dataIndex: 'column1'}, {text: "column2", width: 70, sortable: true, dataIndex: 'column2'} ]; // declare the source Grid var firstGrid = Ext.create('Ext.grid.Panel', { viewConfig: { plugins: { ptype: 'gridviewdragdrop', dragGroup: 'firstGridDDGroup', dropGroup: 'secondGridDDGroup' }, listeners: { drop: function(node, data, dropRec, dropPosition) { var dropOn = dropRec ? ' ' + dropPosition + ' ' + dropRec.get('name') : ' on empty view'; Ext.example.msg("Drag from right to left", 'Dropped ' + data.records[0].get('name') + dropOn); } } }, store : firstGridStore, columns : columns, stripeRows : true, title : 'Grid-1', margins : '0 2 0 0' }); var secondGridStore = Ext.create('Ext.data.Store', { model: 'DataObject' }); var secondGrid = Ext.create('Ext.grid.Panel', { viewConfig: { plugins: { ptype: 'gridviewdragdrop', dragGroup: 'secondGridDDGroup', dropGroup: 'firstGridDDGroup' }, listeners: { drop: function(node, data, dropRec, dropPosition) { var dropOn = dropRec ? ' ' + dropPosition + ' ' + dropRec.get('name') : ' on empty view'; Ext.example.msg("Drag from left to right", 'Dropped ' + data.records[0].get('name') + dropOn); } } }, store : secondGridStore, columns : columns, stripeRows : true, title : 'Grid-2', margins : '0 0 0 3' }); var displayPanel = Ext.create('Ext.Panel', { width : 650, height : 300, layout : { type: 'hbox', align: 'stretch', padding: 5 }, renderTo : 'panel', defaults : { flex : 1 }, items : [ firstGrid, secondGrid ], dockedItems: { xtype: 'toolbar', dock: 'bottom', items: ['->', { text: '重置两个Grid', handler: function(){ firstGridStore.loadData(myData); secondGridStore.removeAll(); } }] } }); });
示例截图:
接下来打算研究下treePanel的节点拖拽。
代码请在附件里下载。如有疑问,请加裙咨询
相关推荐
"Grid2Grid拖拽"功能是指在两个ExtJS Grid之间通过鼠标拖放操作来移动或复制行数据。这种功能在数据管理、比较和操作场景中非常实用。 在实现"Extjs Grid2Grid拖拽"时,主要涉及以下几个关键知识点: 1. **ExtJS ...
Extjs 中想改变grid 行高,如果只是简单的设置了height的值是可以实现grid 的行高,但是如果使用了插件:rowexpander ,最出现新的问题。 感兴趣的朋友可以试试的。 此文档可以解决你的烦恼,为了找到资源下载,...
用户可以从excel中选中要导入的数据,直接拖拽到grid中
ExtJS Grid支持拖放功能,用户可以调整列顺序,或者将数据行拖动到不同的组或位置。 11. **组合列(Grouping Columns)** 数据可以按需分组,显示折叠/展开的层次结构,方便用户查看和操作数据。 12. **树形Grid...
接着,网格(Grid)组件是EXTJS的核心组件之一,用于展示大量数据并支持排序、分页、过滤等功能。EXTJS4中的网格可以配合各种插件,如行编辑、列拖动、导出Excel等,以满足不同需求。数据与网格通过store进行绑定,...
对于GridPanel中拖动选中行排序的实现,网上有不少ExtJs实现的例子,但是没有找到使用Ext.net实现的,正好最近有个需求要使用,干脆来写一个。 DEMO功能说明: 1、拖动GridPanel选中行到新位置排序。 2、在拖动结束...
在本文中,我们将深入探讨如何使用ExtJS框架实现拖拽功能,特别是在树形视图(Tree)和表格视图(Grid)之间的交互。ExtJS是一个强大的JavaScript库,它提供了丰富的用户界面组件,包括可拖拽的元素,这使得在Web...
这里的主要知识点是使用ExtJS提供的gridviewdragdrop插件来实现两个网格面板(GridPanel)之间通过拖拽操作转移数据。 首先,需要了解ExtJS中的GridPanel组件,这是一个用于显示表格数据的强大组件,它提供了诸多...
在"ExtJS4官方指南翻译:DragandDrop拖放/Grid组件/Tree组件/容器与布局"中,我们将会探讨以下几个核心概念: 1. **Drag and Drop(拖放)**: ExtJS4提供了完善的拖放支持,允许用户通过鼠标操作在界面上移动元素...
首先,ExtJS的核心特性之一是组件化。它将网页元素抽象为可复用的组件,如按钮、表格、窗口等,每个组件都有自己的属性、方法和事件,可以方便地进行组合和定制。这种组件化的思想极大地提高了代码的可维护性和复用...
Store负责加载、更新和管理数据,与Grid、Tree等组件配合使用,提供数据绑定功能。 DataView是一种灵活的数据展示方式,它可以以列表、图像或其他自定义模板的形式展示数据。DataView常用于创建滑动图片展示、列表...
再加上可编辑grid,添加新行,删除一或多行,提示多行数据,推拽改变grid大小,grid之间拖拽一或多行,甚至可以在tree和grid之间进行拖拽,啊,这些功能实在太神奇了。更令人惊叹的是,这些功能竟然都在ext表格控件...
再加上可编辑grid,添加新行,删除一或多行,提示多行数据,拖拽改变grid大小,grid之间拖拽一或多行,甚至可以在tree和grid之间进行拖拽,啊,这些功能实在太神奇了。更令人惊叹的是,这些功能竟然都在ext表格控件...
- **与其他组件交互**:Grid之间以及与Tree组件之间的拖拽操作也是EXTJS的一大亮点。 2. **EXTJS Grid Panel的实现** - **ColumnModel**:定义了Grid的列结构,是构建Grid的基础。例如,创建一个包含编号、名称和...
再加上可编辑grid,添加新行,删除一或多行,提示多行数据,拖拽改变grid大小,grid之间拖拽一或多行,甚至可以在tree和grid之间进行拖拽,这些功能实在太神奇了。更令人惊叹的是,这些功能竟然都在ext表格控件里...
再加上可编辑grid,添加新行,删除一或多行,提示多行数据,拖拽改变grid大小,grid之间拖拽一或多行,甚至可以在tree和grid之间进行拖拽,啊,这些功能实在太神奇了。更令人惊叹的是,这些功能竟然都在ext表格...
Ext JS是一个强大的JavaScript库,专用于构建富客户端Web应用,其核心组件之一就是数据网格(Data Grid),用于展示大量结构化的数据。 在Ext JS中,合并单元格通常是为了在表格中创建更复杂的布局或者合并相同的...