- 浏览: 83819 次
- 性别:
- 来自: 武汉
文章分类
最新评论
-
package:
不知楼主 是否试过火狐下面报错.....b.firstChil ...
EXTjs grid双层表头的实现 (源代码和示例) -
少年阿郎:
请把你的demo发到我的邮箱15251855442@163.c ...
Ext DateField控件 - 只选择年月 -
岳阳楼:
提示错误:消息: 'prototype' 为空或不是对象行: ...
Ext DateField控件 - 只选择年月 -
hellostory:
引用执行“清除”操作后,问题解决了。 请问如何执行清除操作。。 ...
SVN错误:Attempted to lock an already-locked dir -
jxxms:
可以用,非常好
Ext DateField控件 - 只选择年月
// 使用一个Json数据结构作为tree的本地数据源 var nodes = [ {'text' : 'SY0706', 'id' : 1, 'leaf' : false, 'cls' : 'folder', 'children' : [ {'text' : '1', 'id' : 11, 'leaf' : false, 'cls' : 'folder', 'children' : [ {'text' : '01', 'id' : 111, 'leaf' : true, 'cls' : 'file'}, {'text' : '02', 'id' : 112, 'leaf' : true, 'cls' : 'file'}, {'text' : '03', 'id' : 113, 'leaf' : true, 'cls' : 'file'}, {'text' : '04', 'id' : 114, 'leaf' : true, 'cls' : 'file'}, {'text' : '05', 'id' : 115, 'leaf' : true, 'cls' : 'file'} ]}, {'text' : '2', 'id' : 12, 'leaf' : false, 'cls' : 'folder', 'children' : [ {'text' : '06', 'id' : 121, 'leaf' : true, 'cls' : 'file'}, {'text' : '07', 'id' : 122, 'leaf' : true, 'cls' : 'file'}, {'text' : '08', 'id' : 123, 'leaf' : true, 'cls' : 'file'}, {'text' : '09', 'id' : 124, 'leaf' : true, 'cls' : 'file'}, {'text' : '10', 'id' : 125, 'leaf' : true, 'cls' : 'file'} ]} ]} ]; // 拖拽时需要用到的函数,用来处理添加树结点 /* * TreeNode node : tree上的目标结点 * TreeNode refNode : 目标结点的子结点,用于定位新添加的结点 * Record Array selections : 从grid中选取的记录数组 */ var ddFunction = function(node, refNode, selections) { for(var i = 0; i < selections.length; i ++) { var record = selections[i]; node.insertBefore(new Tree.TreeNode({ text: record.get('text'), id: record.get('id'), leaf: record.get('leaf'), cls: record.get('cls') }), refNode); } } // 建一棵树,并将其设置到tgDD拖动组中 var Tree = Ext.tree; var tree = new Tree.TreePanel({ renderTo: 'tree', animate: true, loader: new Tree.TreeLoader(), lines: true, selModel: new Ext.tree.MultiSelectionModel(), containerScroll: false, autoHeight: true, root: new Tree.AsyncTreeNode({ text: 'BUAA', draggable: false, id: 0, children: nodes, expanded: true }), enableDD: true, ddGroup: "tgDD", listeners: { // 监听beforenodedrop事件,主要就是在这里工作 // 参考“http://www.iteye.com/topic/155272”中的讨论 beforenodedrop: function(dropEvent) { var node = dropEvent.target; // 目标结点 var data = dropEvent.data; // 拖拽的数据 var point = dropEvent.point; // 拖拽到目标结点的位置 // 如果data.node为空,则不是tree本身的拖拽,而是从grid到tree的拖拽,需要处理 if(!data.node) { switch(point) { case 'append': // 添加时,目标结点为node,子结点设为空 ddFunction(node, null, data.selections); break; case 'above': // 插入到node之上,目标结点为node的parentNode,子结点为node ddFunction(node.parentNode, node, data.selections); break; case 'below': // 插入到node之下,目标结点为node的parentNode,子结点为node的nextSibling ddFunction(node.parentNode, node.nextSibling, data.selections); break; } } } } }); // grid的数据源 var data = [ ['11', 211, true, 'file'], ['12', 212, true, 'file'], ['13', 213, true, 'file'], ['14', 214, true, 'file'], ['15', 215, true, 'file'], ['16', 221, true, 'file'], ['17', 222, true, 'file'], ['18', 223, true, 'file'], ['19', 224, true, 'file'], ['20', 225, true, 'file'] ]; var store = new Ext.data.Store({ reader: new Ext.data.ArrayReader({}, [ {name: 'text'}, {name: 'id'}, {name: 'leaf'}, {name: 'cls'} ]) }); store.loadData(data); // 建一个grid,并设置到tgDD拖拽组中 var Grid = Ext.grid; var model = new Grid.ColumnModel([ {header: "text", width: 50, sortable: true, dataIndex: 'text'}, {id:'id', header: "id", width: 50, sortable: true, dataIndex: 'id'}, {header: "leaf", width: 50, sortable: true, dataIndex: 'leaf'}, {header: "cls", width: 50, sortable: true, dataIndex: 'cls'} ]); var grid = new Grid.GridPanel({ renderTo: 'grid', ds: store, cm: model, sm: new Grid.RowSelectionModel(), autoHeight: true, enableDragDrop: true, ddGroup: "tgDD" }); // 使用一个Json数据结构作为tree的本地数据源 // 参考“http://ccmv.iteye.com/admin/blogs/154049” var nodes = [ {'text' : 'SY0706', 'id' : 1, 'leaf' : false, 'cls' : 'folder', 'children' : [ {'text' : '1', 'id' : 11, 'leaf' : false, 'cls' : 'folder', 'children' : [ {'text' : '01', 'id' : 111, 'leaf' : true, 'cls' : 'file'}, {'text' : '02', 'id' : 112, 'leaf' : true, 'cls' : 'file'}, {'text' : '03', 'id' : 113, 'leaf' : true, 'cls' : 'file'}, {'text' : '04', 'id' : 114, 'leaf' : true, 'cls' : 'file'}, {'text' : '05', 'id' : 115, 'leaf' : true, 'cls' : 'file'} ]}, {'text' : '2', 'id' : 12, 'leaf' : false, 'cls' : 'folder', 'children' : [ {'text' : '06', 'id' : 121, 'leaf' : true, 'cls' : 'file'}, {'text' : '07', 'id' : 122, 'leaf' : true, 'cls' : 'file'}, {'text' : '08', 'id' : 123, 'leaf' : true, 'cls' : 'file'}, {'text' : '09', 'id' : 124, 'leaf' : true, 'cls' : 'file'}, {'text' : '10', 'id' : 125, 'leaf' : true, 'cls' : 'file'} ]} ]} ]; // 拖拽时需要用到的函数,用来处理添加树结点 /* * TreeNode node : tree上的目标结点 * TreeNode refNode : 目标结点的子结点,用于定位新添加的结点 * Record Array selections : 从grid中选取的记录数组 */ var ddFunction = function(node, refNode, selections) { for(var i = 0; i < selections.length; i ++) { var record = selections[i]; node.insertBefore(new Tree.TreeNode({ text: record.get('text'), id: record.get('id'), leaf: record.get('leaf'), cls: record.get('cls') }), refNode); } } // 建一棵树,并将其设置到tgDD拖动组中 var Tree = Ext.tree; var tree = new Tree.TreePanel({ renderTo: 'tree', animate: true, loader: new Tree.TreeLoader(), lines: true, selModel: new Ext.tree.MultiSelectionModel(), containerScroll: false, autoHeight: true, root: new Tree.AsyncTreeNode({ text: 'BUAA', draggable: false, id: 0, children: nodes, expanded: true }), enableDD: true, ddGroup: "tgDD", listeners: { // 监听beforenodedrop事件,主要就是在这里工作 // 参考“http://www.iteye.com/topic/155272”中的讨论 beforenodedrop: function(dropEvent) { var node = dropEvent.target; // 目标结点 var data = dropEvent.data; // 拖拽的数据 var point = dropEvent.point; // 拖拽到目标结点的位置 // 如果data.node为空,则不是tree本身的拖拽,而是从grid到tree的拖拽,需要处理 if(!data.node) { switch(point) { case 'append': // 添加时,目标结点为node,子结点设为空 ddFunction(node, null, data.selections); break; case 'above': // 插入到node之上,目标结点为node的parentNode,子结点为node ddFunction(node.parentNode, node, data.selections); break; case 'below': // 插入到node之下,目标结点为node的parentNode,子结点为node的nextSibling ddFunction(node.parentNode, node.nextSibling, data.selections); break; } } } } }); // grid的数据源 var data = [ ['11', 211, true, 'file'], ['12', 212, true, 'file'], ['13', 213, true, 'file'], ['14', 214, true, 'file'], ['15', 215, true, 'file'], ['16', 221, true, 'file'], ['17', 222, true, 'file'], ['18', 223, true, 'file'], ['19', 224, true, 'file'], ['20', 225, true, 'file'] ]; var store = new Ext.data.Store({ reader: new Ext.data.ArrayReader({}, [ {name: 'text'}, {name: 'id'}, {name: 'leaf'}, {name: 'cls'} ]) }); store.loadData(data); // 建一个grid,并设置到tgDD拖拽组中 var Grid = Ext.grid; var model = new Grid.ColumnModel([ {header: "text", width: 50, sortable: true, dataIndex: 'text'}, {id:'id', header: "id", width: 50, sortable: true, dataIndex: 'id'}, {header: "leaf", width: 50, sortable: true, dataIndex: 'leaf'}, {header: "cls", width: 50, sortable: true, dataIndex: 'cls'} ]); var grid = new Grid.GridPanel({ renderTo: 'grid', ds: store, cm: model, sm: new Grid.RowSelectionModel(), autoHeight: true, enableDragDrop: true, ddGroup: "tgDD" });
发表评论
-
ExtJs grid中常用属性 总结
2011-08-29 11:07 2419问题:使用Grid时,如果出现列标题与复选框错位 使用定 ... -
ExtJS 中xtype和 class对照表
2011-08-25 08:55 1026xtype Class ... -
EXTjs grid双层表头的实现 (源代码和示例)
2011-08-11 14:34 2936源代码:加载到页面中的js文件GridDoubleHead ... -
Extjs Grid相关组件及属性
2011-08-11 14:14 1616Ext.grid.GridPanel ... -
EXT的formpanel中的横向排列布局
2011-06-29 09:52 3201利用formpanel的form和column属性混合使用来 ... -
EXT中将grid的sm选择项动态添加到ComboBox
2011-06-29 09:09 1239//创建ComboBox的数据源 var itemDs = ... -
EditorGridPanel组件中根据条件取消某一行的编辑状态
2011-03-16 10:40 1104var dataClearGrid = new Ext.gri ... -
Ext.grid.GridPanel中的符合条件的某行不能选择
2011-03-15 14:10 1709让Ext.grid.GridPanel不能选择,即令Ext.g ... -
Ext.grid.ColumnModel 后期通过setEditor设置editor
2011-02-28 15:52 3360Ext.grid.EditorGridPanel 顾名思义就是 ... -
Ext.ux.form.FileUploadField 重置的问题
2011-02-24 13:52 1587Js代码 text: '重置', ... -
EXT 树的配置详细属性介绍
2011-02-23 17:37 12931、Ext.tree.TreePanel 主要配 ... -
Ext.data.Store
2011-02-10 15:08 1021Ext.data.Store是EXT中用来进行数据交换和数据交 ... -
ext中常见的几种布局布局Layout
2010-12-02 14:02 3090所谓布局就是指容器组件中子元素的分布、排列组合方式。Ext的所 ... -
如何将string类型的数据如何显示在Ext的datefield中
2010-11-18 10:42 1259//返回的String的数据先格式化处理 obj.month ... -
Ext DateField控件 - 只选择年月
2010-11-18 09:44 4716var monthField = new Ext.u ... -
动态修改Ext控件的readOnly属性
2010-11-17 11:37 1901Ext 控件的readOnly属性是可以在控件初始化过程中 ... -
EXT表单组件常见属性介绍(三)
2010-11-17 11:25 1737本范例展示如何使用表单的各种组件。 下拉框组件展示了5种 ... -
EXT表单组件常见属性介绍(二)
2010-11-17 11:24 13651、Ext.form.Hidden 2、Ex ... -
EXT表单组件常见属性介绍(一)
2010-11-17 11:23 11791、Ext.form.Action 配置项: ... -
ext的 renderer的function参数详细介绍
2010-11-12 09:31 1521renderer:function(value, cellm ...
相关推荐
本文将深入探讨一个具体的使用场景——如何实现从Tree组件到Grid组件的拖拽功能,并解决在清空Grid后拖拽功能失效的问题。这个问题在实际开发中可能会遇到,尤其是在需要动态管理数据的界面中。 首先,EXTJS的Tree...
通过对Ext JS中树(Tree)和表格(Grid)控件拖拽功能的研究,我们可以看到其实现的核心在于正确配置拖动源和目标对象的相关属性,并利用`DragSource`和`DropTarget`这两个关键类来实现整个拖拽流程。掌握了这些原理和...
在"ExtJS4官方指南翻译:DragandDrop拖放/Grid组件/Tree组件/容器与布局"中,我们将会探讨以下几个核心概念: 1. **Drag and Drop(拖放)**: ExtJS4提供了完善的拖放支持,允许用户通过鼠标操作在界面上移动元素...
EXTJS 是一个强大的JavaScript 应用程序框架,用于构建富客户端Web应用。..."EXT 控件拖动例子"项目提供的代码可能涵盖了从基础的拖放实现到复杂的动态布局调整的完整流程,是学习EXTJS高级特性的宝贵资源。
在本文中,我们将深入探讨如何使用ExtJS框架实现拖拽功能,特别是在树形视图(Tree)和表格视图(Grid)之间的交互。ExtJS是一个强大的JavaScript库,它提供了丰富的用户界面组件,包括可拖拽的元素,这使得在Web...
根据提供的信息,我们可以深入探讨Ext JS中的拖动功能,特别是针对树(Tree)和表格(Grid)的拖动操作。本文将详细介绍这些概念和技术要点。 ### 一、Ext JS 拖动的基本概念 #### 1.1 拖动源与目标 在Ext JS中,拖动...
在Ext JS库中,Tree通常用于展现层级关系的数据,而Grid则用于显示二维表格数据。TreeGrid将两者融合,使得用户可以在一个界面上既可以看到层级结构,又可以享受到Grid的排序、筛选、分页等功能。 "ext.ux.tree....
4.6.1. ext中默认的提交形式 4.6.2. 使用html原始的提交形式 4.6.3. 单纯ajax 4.7. 验证苦旅 4.7.1. 不能为空 4.7.2. 最大长度,最小长度 4.7.3. 借助vtype 4.7.4. 自定义验证规则 4.7.5. 算不上校验的NumberField ...
4.6.1. ext中默认的提交形式 4.6.2. 使用html原始的提交形式 4.6.3. 单纯ajax 4.7. 验证苦旅 4.7.1. 不能为空 4.7.2. 最大长度,最小长度 4.7.3. 借助vtype 4.7.4. 自定义验证规则 4.7.5. 算不上校验的NumberField ...
再加上可编辑grid,添加新行,删除一或多行,提示多行数据,拖拽改变grid大小,grid之间拖拽一或多行,甚至可以在tree和grid之间进行拖拽,啊,这些功能实在太神奇了。更令人惊叹的是,这些功能竟然都在ext表格控件...
再加上可编辑grid,添加新行,删除一或多行,提示脏数据,推拽改变grid大小,grid之间拖拽一或多行,甚至可以在tree和grid之间进行拖拽,啊,这些功能实在太神奇了。更令人惊叹的是,这些功能竟然都在ext表格控件里...
再加上可编辑grid,添加新行,删除一或多行,提示脏数据,推拽改变grid大小,grid之间推拽一或多行,甚至可以在tree和grid之间进行拖拽,啊,这些功能实在太神奇了。更令人惊叹的是,这些功能竟然都在ext表格控件...
通过EXT组件grid+tree+window.docx文档,你可以学习到如何在EXTJS中集成这三个组件,以及如何与后台SSM框架协作。运行截图.png可能展示了这些组件实际运行的效果。role文件可能包含了角色和权限的相关配置信息。学习...
- **更多组件**:除了MessageBox和Grid外,EXT还提供了大量的其他组件,如Form、Tree、TabPanel等,满足不同场景的需求。 - **使用方法**:通过实例演示如何在项目中引入并使用这些组件,提高开发效率。 #### 8. ...
7.2.9 从变量中提取数据的代理:ext.data.proxy.memory / 314 7.2.10 使用浏览器存储的代理:ext.data.webstorageproxy、ext.data. sessionstorageproxy和ext.data.proxy.localstorage / 314 7.3 读取和格式化...
ExtJS可以在项目中通过CDN链接引入,或者下载安装到本地项目中。此外,还需要服务器端的支持来处理数据请求。 #### 三、核心代码解析 下面将逐步解析实现动态树形结构的核心代码。 ##### 3.1 创建树加载器 首先...
- **拖放功能**:SimpleTasks支持将任意文本拖放到Grid中,并自动转换为新的任务。 - **剪贴板功能**:可以从系统的剪贴板粘贴新建任务。此外,还可以直接从Outlook拖动任务到SimpleTasks。 - **示例**:这种交互...
ExtJS Grid支持拖放功能,用户可以调整列顺序,或者将数据行拖动到不同的组或位置。 11. **组合列(Grouping Columns)** 数据可以按需分组,显示折叠/展开的层次结构,方便用户查看和操作数据。 12. **树形Grid...
var grid = new Ext.grid.GridPanel({ renderTo: "hello", title: "NetJava表格测试", height: 150, width: 600, columns: [ { header: "项目名称", dataIndex: "name" }, { header: "开发团队", dataIndex:...
再加上可编辑grid,添加新行,删除一或多行,提示脏数据,推拽改变grid大小,grid之间推拽一或多行,甚至可以在tree和grid之间进行拖拽,啊,这些功能实在太神奇了。更令人惊叹的是,这些功能竟然都在ext表格控件...