ExtJS4.2学习(11)可拖放的表格(转)

时间:2021-08-17 14:37:35

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

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

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

ExtJS4.2学习(11)可拖放的表格(转)

以下是完整代码:

/**
* 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'
}
}
});

嘿嘿,现在上效果图:

ExtJS4.2学习(11)可拖放的表格(转)

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

/**
* 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)可拖放的表格(转)

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

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&period;net学习之 数据绑定控件--表格绑定控件

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

随机推荐

  1. android应用刷新系统多媒体库(增加or删除多媒体文件)

    系统:android4.4及其以上 功能:app中拍照, 并实现浏览.删除照片操作. 实现: 1.拍照,存储到指定路径path 2.通知系统多媒体数据库刷新数据. 主要使用MediaScannerCo ...

  2. poj 1465 Multiple(bfs&plus;余数判重)

    题意:给出m个数字,要求组合成能够被n整除的最小十进制数. 分析:用到了余数判重,在这里我详细的解释了.其它就没有什么了. #include<cstdio> #include<cma ...

  3. exception is org&period;hibernate&period;exception&period;DataException&colon; Could not execute JDBC batch update &Tab;at

    没有什么问题,但是却报了Could not execute JDBC batch update的错,主要是配置文件设置了关联,数据却没有关联造成的,只要数据正确就没有问题. 另外,造成这个原因的还可能 ...

  4. Kafka&period;net使用编程入门&lpar;四&rpar;

    新建一个cmd窗口,zkServer命令启动zookeeper 打开另一个cmd窗口,输入: cd D:\Worksoftware\Apachekafka2.11\bin\windows kafka- ...

  5. WebLogic域配置策略

    WebLogic域配置策略--手动和模板选项,第一部分 域含有BEA WebLogic Server实例的配置信息.它包含有关服务器.集群和机器的配置信息.域还含有关于资源,例如Java数据库连接(J ...

  6. javascript 作用域详解

    作用域理解:定义的变量.函数生效的范围.javascript 有全局作用域和函数作用域两种.注:es6实现let 块级作用域不是js原生的,底层同样是通过var实现的.如果想了解具体细节,请访问bab ...

  7. &lbrack;grub2&rsqb; grub2修改启动顺序

    https://wiki.centos.org/HowTos/Grub2#head-535f476a61e62f24bc150c73f7e0816f85345f46 1, 查看所有的entry [ro ...

  8. Mongodb的入门(4)mongodb3&period;6的索引

    Mongodb的索引: 在介绍索引之前,再强调一下nosql数据库和sql数据库的区别: sql数据库:结构化数据,定好了表格后,每一行的内容都是结构化的 mongo:文档数据,表下的数据都可以有自己 ...

  9. &lbrack;Functional Programming&rsqb; Build a Linear congruential generator

    What we are going to do in this post, is to build a random number generator. As you might know that ...

  10. wchar&lowbar;t char string wstring 之间的转换

    wchar_t char string wstring 之间的转换 转:http://blog.csdn.net/lbd2008/article/details/8333583 在处理中文时有时需要进 ...