原文地址在这里,英语不太好,还是没看太明白。。点这里
代码如下:
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 & 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'
}]
}]
- 大小: 44.5 KB
分享到:
相关推荐
在"ExtJS4官方指南翻译:DragandDrop拖放/Grid组件/Tree组件/容器与布局"中,我们将会探讨以下几个核心概念: 1. **Drag and Drop(拖放)**: ExtJS4提供了完善的拖放支持,允许用户通过鼠标操作在界面上移动元素...
首先,EXTJS的Tree组件和Grid组件提供了内置的拖放(Drag and Drop,简称D&D)支持。Tree组件通常用于展示层级结构的数据,而Grid组件则常用于展示表格数据。将Tree中的节点拖放到Grid中,可以实现数据的转移或关联...
8. **拖放功能(Drag and Drop)** - 可以启用拖放功能,允许用户重新排列节点,使用`ddGroup`,`enableDragDrop`等配置项。 - 实现拖放需要扩展`Ext.dd.DragSource`和`Ext.dd.DropTarget`。 9. **自定义节点模板...
10. **拖放排序(Drag-and-Drop Sorting)** ExtJS Grid支持拖放功能,用户可以调整列顺序,或者将数据行拖动到不同的组或位置。 11. **组合列(Grouping Columns)** 数据可以按需分组,显示折叠/展开的层次结构...
9. **Drag & Drop**:框架支持拖放操作,可轻松实现组件间的交互。 10. **主题支持**:ExtJS 3.1.0提供多套皮肤,可以改变应用的整体外观。 总的来说,ExtJS 3.1.0为开发者提供了一套完整的工具集,用于创建功能...
11. **拖放(Drag & Drop)**:内置的拖放API使得元素间拖放操作变得简单易用。 12. **AJAX请求(Ajax Request)**:通过Ext.Ajax对象,可以发送XMLHttpRequest请求,处理JSON、XML等多种数据格式。 13. **数据包...
1. DND(Drag and Drop):支持元素拖放操作,可以创建复杂的拖放交互。 2. 动画(Animations):通过Ext.fx API实现平滑的动画效果。 3. 工具提示(Tooltips)和提示框(Tips):提供信息提示功能。 4. 国际化...
此外,文档可能还会讨论Ajax请求、数据绑定、布局管理(Layouts)以及拖放(Drag & Drop)功能。布局管理器允许开发者轻松地组织和调整组件的大小和位置,而拖放功能则增强了应用的交互性。 对于高级话题,如树形...
4. **可拖放(Drag and Drop)**:增强了拖放功能,使得在界面上移动和排列组件变得更加简单。 5. **动画(Animations)**:EXTJS 4.0 加强了动画效果,允许开发者创建平滑的过渡和动画,提升用户体验。 6. **新组件...
- **Drag Source** 和 **Drop Target**:定义可拖动和接收拖动的元素,实现元素间的拖放操作。 8. **Ajax和数据通信** - **Ajax请求(Ext.Ajax)**:封装了XMLHttpRequest对象,提供异步发送和接收数据的API。 -...
7. **Drag and Drop**:EXTJS支持拖放操作,使得用户可以轻松地在组件之间移动元素,增强了交互性。 8. **Widgets and UI Components**:EXTJS提供了大量的预定义组件,如按钮、工具栏、菜单、提示框、进度条等,...
10. **拖放(Drag & Drop)**:EXTJS支持组件间的拖放操作,增强用户体验,实现更直观的交互。 本电子教材会详细介绍EXTJS的这些核心特性和使用方法,帮助开发者快速掌握EXTJS框架。对于初学者来说,学习EXTJS不仅...
实现拖拽功能,我们需要使用ExtJS提供的DD(Drag and Drop)API。DD API包括几个关键类,如DragSource、DropTarget、DDProxy等,它们协同工作以实现拖放行为。在树和表格之间进行拖拽,我们需要配置这两个组件以支持...
7. **Drag & Drop**:支持拖放操作,使得用户可以更直观地与界面交互。 8. **Window and Dialogs**:可以创建弹出窗口和对话框,用于显示独立的交互内容。 9. **Viewport**:EXTJS的视口组件可以根据浏览器窗口大小...
10. **Drag and Drop**: 支持拖放操作,便于构建具有交互性的应用,如文件管理器等。 EXTJS的前台开发部分通常涉及以下步骤: 1. **项目初始化**: 使用EXTJS的命令行工具(Sencha CMD)生成项目结构,包括基本的...
8. **拖放与小部件(Drag and Drop with Widgets)** - 拖放是一种直观的交互方式,允许用户通过鼠标将对象从一个位置移动到另一个位置。小部件是指可以被拖放的组件。 #### 四、面向对象编程与复合组件 **部分内容...
拖放(Drag and Drop)是一种直观的用户交互方式,ExtJS的小部件(Widget)提供了实现这一功能的机制,允许用户通过拖动对象来完成各种操作,如重新排序列表项或移动组件位置。 ### 4. 构建可配置的复合组件 书中还...
7. **拖放(Drag & Drop)功能**:EXTJS 3实现了标准的HTML5拖放API,可以轻松创建可拖放的组件,增强了用户交互体验。 8. **树形(Tree)组件**:EXTJS 3的树形组件允许展示和操作层次结构的数据,支持节点的展开...
- **Drag & Drop**: 支持元素的拖放操作,可应用于列表、树等组件。 - **ToolTips**: 提示框组件,用于显示鼠标悬停时的额外信息。 - **Ajax Grid**: 支持从服务器动态加载数据的网格组件。 - **Charts**: 图表...
例如,可能会有展示如何创建一个基本的网格(Grid)来显示和编辑数据,如何实现拖放操作(Drag and Drop),如何使用图表(Charts)进行数据可视化,或是如何自定义组件(Component)来满足特定需求。通过这些实例,...