鸣谢:http://www.shuyangyang.com.cn/jishuliangongfang/qianduanjishu/2013-11-18/180.html

--------------------------------------------------------------------------------------------

先来看下第一个例子,通过拖放改变表格大小:

以下是完整代码:

/**
* Grid
* 此js演示了ExtJS之可拖放的表格:在一个表格间互相拖行
*/
//表格数据最起码有列、数据、转换原始数据这3项
Ext.onReady(function(){
var columns = [
{header:'编号',dataIndex:'id'},
{header:'名称',dataIndex:'name'},
{header:'描述',dataIndex:'descn'}
]; var data = [
['1','name1','descn1'],
['2','name2','descn2'],
['3','name3','descn3'],
['4','name4','descn4'],
['5','name5','descn5']
]; var store = new Ext.data.ArrayStore({
data: data,
fields: [
{name: 'id'},
{name: 'name'},
{name: 'descn'}
]
});
store.load(); var grid = new Ext.grid.GridPanel({
renderTo: 'grid',
store: store,
columns: columns,
viewConfig:{ //加入此代码可在同一个表格里拖放
plugins:{
ptype:'gridviewdragdrop'
}
}
}); //只需要加入下面代码即可实现拖放
var rz = new Ext.Resizable(grid.getEl(),{
wrap:true, //自动包裹
minHeight:100, //最小高度
pinned:true, //控制可拖放区域的显示状态
handles:'s' //设置可以拖放的方向
});
rz.on("resize",function(resizer,width,height,event){
grid.setHeight(height);
},grid);
});

来解释下属性什么意思?

Resizable()函数必须放在render之后,否则会出现问题。

第一个参数是grid,就是说这个可改变大小的区域是在div id="grid" 这个元素上起作用。

wrap:true,这个参数会在构造Resizable()函数时自动在指定id的外边包裹一层div,这样就不用在HTML里定义其他附属的div了。

minHeight:100,它限制改变的最小高度。

pinned:true,此参数控制可拖放区域的显示状态。如果值为true,则可拖放区域会一直显示在表格下方;如果值为false,只有鼠标悬停在可拖放区域上方时才会出现。具体配置取决于个人爱好。

handles:'s',s即south。Ext中用东、南、西、北对应上、下、左、右,用首字母来设置可以拖放的方向。

最后别忘了注册resize事件,在拖放完成之后,表格会调用setHeight()方法修改自己的大小,re.on()函数的第3个参数是函数执行的scope。

第2个例子,在同一个表格中拖放

Ext的表格内置了对拖放的支持,所以使用起来非常方便,只需要设置gridviewdragdrop插件就行了,具体代码如下:

var grid = new Ext.grid.GridPanel({
renderTo: 'grid',
store: store,
columns: columns,
viewConfig:{ //加入此代码可在同一个表格里拖放
plugins:{
ptype:'gridviewdragdrop'
}
}
});

嘿嘿,现在上效果图:

什么,你觉得这样还不过瘾,记得我在文章开头提过,还可以多个表格之间相互拖拽,那么现在来看看代码:

/**
* Grid
* 此js演示了ExtJS之可拖放的表格:两个表格间可以互相拖放行
*/
//表格数据最起码有列、数据、转换原始数据这3项
Ext.onReady(function(){ var store1 = new Ext.data.ArrayStore({
data: [
['01','name01','descn01'],
['02','name02','descn02'],
['03','name03','descn03'],
['04','name04','descn04'],
['05','name05','descn05']
],
fields: [
{name: 'id'},
{name: 'name'},
{name: 'descn'}
]
});
var store2 = new Ext.data.ArrayStore({
data: [
['11','name11','descn11'],
['12','name12','descn12'],
['13','name13','descn13'],
['14','name14','descn14'],
['15','name15','descn15']
],
fields: [
{name: 'id'},
{name: 'name'},
{name: 'descn'}
]
}); store1.load();
store2.load(); var columns = [
{header:'编号',dataIndex:'id'},
{header:'名称',dataIndex:'name'},
{header:'描述',dataIndex:'descn'}
]; var grid1 = new Ext.grid.GridPanel({
width:400,
autoHeight: true,
renderTo: 'grid1',
store: store1,
columns: columns,
enableDragDrop: true,
viewConfig: {
plugins: {
ptype: 'gridviewdragdrop'
}
}
});
var grid2 = new Ext.grid.GridPanel({
width:400,
autoHeight: true,
renderTo: 'grid2',
store: store2,
columns: columns,
enableDragDrop: true,
viewConfig: {
plugins: {
ptype: 'gridviewdragdrop'
}
}
});
});

上效果图:

好了,本章到此结束,下章开始讲扩展插件,等所有扩展插件讲完,表格控件就到此结束了,你也来动手试试吧。

ExtJS4.2学习(11)可拖放的表格(转)的更多相关文章

  1. ExtJS4.2学习(21)动态菜单与表格数据展示操作总结篇2

    运行效果: 此文介绍了根据操作左侧菜单在右面板展示相应内容. 一.主页 先看一下跳转主页的方式:由在webapp根目录下的index.jsp跳转至demo的index.jsp 下面是demo的inde ...

  2. ExtJS4.2学习(11)——高级组件之Grid

    大纲: 1.首先,搭建起来一个最基础的Grid组件: 2.其次,利用前边MVC架构将代码重构: 3.再者,介绍下Grid的一些特性. 一.搭建基础的Grid组件 在文章的开始,我们首先简单的搭建一个G ...

  3. ExtJS4.2学习(七)EditorGrid可编辑表格(转)

    鸣谢地址:http://www.shuyangyang.com.cn/jishuliangongfang/qianduanjishu/2013-11-14/176.html ------------- ...

  4. ExtJS4.2学习(九)属性表格控件PropertyGrid(转)

    鸣谢网址:http://www.shuyangyang.com.cn/jishuliangongfang/qianduanjishu/2013-11-15/178.html ------------- ...

  5. ExtJS4.2学习(18)时间控件(转)

    鸣谢:http://www.shuyangyang.com.cn/jishuliangongfang/qianduanjishu/2013-12-22/190.html 感谢“束洋洋 ”的付出. 前言 ...

  6. ExtJS学习(四)EditorGrid可编辑表格

    操作表格有一种需求,要操作表格需要动态的添加内容,删除内容以及双击的时候进入编辑状态.这个时候怎么办呢,看具体的实现吧. 双击点击的时候可以单元格的操作. 代码: <!DOCTYPE html& ...

  7. JavaScript学习11 数组排序实例

    JavaScript学习11 数组排序实例 数组声明 关于数组对象的声明,以前说过:http://www.cnblogs.com/mengdd/p/3680649.html 数组声明的一种方式: va ...

  8. ThinkPhp学习11

    原文:ThinkPhp学习11 一.模板的使用        (重点) a.规则 模板文件夹下[TPL]/[分组文件夹/][模板主题文件夹/]和模块名同名的文件夹[Index]/和方法名同名的文件[i ...

  9. asp.net学习之 数据绑定控件--表格绑定控件

    原文:asp.net学习之 数据绑定控件--表格绑定控件     数据绑定 Web 服务器控件是指可绑定到数据源控件,以实现在 Web 应用程序中轻松显示和修改数据的控件.数据绑定 Web 服务器控件 ...

随机推荐

  1. 利用ExpandableListView和gridview 显示可展开折叠菜单导航

    这篇随身笔带来的是结合聚合数据“菜谱大全”做的一个菜谱可折叠一级+二级列表. 先发来一些截图一睹为快吧. ExpandableListView 可用于折叠型菜单列表,其布局主要通过getGroupVi ...

  2. SQL创建函数及应用

    用户自定义函数在SQL Server中,用户不仅可以使用标准的内置函数,也可以使用自己定义的函数来实现一些特殊的功能.用户自定义函数可以在企业管理器中创建,也可以使用CREATE FUNCTION 语 ...

  3. [转] Portable Trac 简单介绍 - 兼谈为什么不选择 Redmine

    Portable Trac 简单介绍 - 兼谈为什么不选择 Redmine ​Trac是一个轻量级的软件项目管理环境,如果在工作中涉及一个开发团队的管理并且关心项目管理工具的话,相信都在 ​Trac. ...

  4. Cocos2d-x使用瓦片地图

    图所示的复杂地图可以使用瓦片地图技术,瓦片地图是用一些小图片(瓦片)拼接而成,这样可以大大地减少内存消耗.如图所示的瓦片地图,只需要如图所示的三个瓦片就可以了. 瓦片地图 地图中的瓦片 瓦片地图的分类 ...

  5. Android Animation学习笔记

    原文地址: http://www.cnblogs.com/feisky/archive/2010/01/11/1644482.html 关于动画的实现,Android提供了Animation,在And ...

  6. Shared library can't open object

    将cpp的源文件和.so (shared object)链接成可执行程序之后,无法运行,提示如标题,实际就是找不到共享库. 最终找到了解决办法是: export LD_LIBRARY=./:$LD_L ...

  7. Contest1065 - 第四届“图灵杯”NEUQ-ACM程序设计竞赛(个人赛)D拿糖果

    题目描述 薯片和他的朋友薯条来到了商店,商店有n个糖果,标号依次为1,2,3....n,对应的价值为W1,W2,W3...Wn.现在薯片先拿走一个标号为a的糖果,标号小于a的糖果就被商家收回去了,然后 ...

  8. template_1

    0: 模板是一些为多种类型而编写的函数和类,而且这些类型都没有指定.当使用模板的时候,只需要把所希望的类型作为一个(显示或隐示的)实参传递给模板.模板是语言本身所具有的特效,她完全支持类型检查和作用域 ...

  9. ubuntu grub配置

    一.Grub 2包含如下几部分内容:1./boot/grub/grub.cfg 文件2./etc/grub.d/ 文件夹3./etc/default/grub 文件 二.配置和意义: 1.修改grub ...

  10. vi 技巧

    :%s/^/\//   行首加 / :%s/$/\//    行尾加/ :%s/^\///g   行首减 / :%s/\/$//g   行尾减/ :%s/^\s*//g  行首减 空格