ExtJS4.2学习(13)基于表格的扩展插件---rowEditing
鸣谢:http://www.shuyangyang.com.cn/jishuliangongfang/qianduanjishu/2013-11-24/182.html
--------------------------------------------------------------------------------------------

前一章说了EditorGrid可编辑表格,但是有点不方便,如果数据多的话,一次性保存未免有点不太方便。下面我们来说一个扩展插件rowEditing网上许多说了不全,比如将修改的内容提交到后台的方法。
首先,创建扩展插件方法
var rowEditing = Ext.create('Ext.grid.plugin.RowEditing', {
saveBtnText: '保存',
cancelBtnText: "取消",
autoCancel: false,
clicksToMoveEditor: 1, //双击进行修改 1-单击 2-双击 0-可取消双击/单击事件
autoCancel: false,
listeners:{
edit:function(e){
/*var myMask = new Ext.LoadMask(Ext.getBody(), {
msg: '正在修改,请稍后...',
removeMask: true //完成后移除
});
myMask.show();*/
console.info(e.context.record);
//e.context.record为更改的这行的数据,某个值可以用get方法,比如下面
var id = e.context.record.get('id'); //比如修改了id,在这里就可以获取id
//e.context.record.fields.items为修改的这行字段名,这是一个数组集合,e.context.record.fields.items[0].name为第一列的名称,以此类推
// 更新提示界面(供调试使用)
Ext.Msg.alert('您成功修改信息', "修改的内容是:" + e.context.record + "n 修改的字段是:"+ e.context.record.fields.items[0].name +"n 修改的id为"+id);//取得更新内容
}
//当然这里你也可以自定义一个ajax来提交到后台,大家自由发挥,这里不多写。
}
});
这里注意下,提交到后台的参数里e.context.record和e.context.record.fields方法比较重要,
e.context.record为更改的这行的数据,获某个值可以用get方法。
e.context.record.fields.items为修改的这行字段名,这是一个数组集合,e.context.record.fields.items[0].name为第一列的名称,以此类推。
grid中调用插件:
var grid = new Ext.grid.GridPanel({
title:'表格的扩展插件--行编辑',
width: 500,
height: 400,
renderTo: 'grid',
store: store,
columns: columns,
plugins: [rowEditing]
});
完整代码:
/**
* Grid
* 此js演示了ExtJS之基于表格的扩展插件
*/
//表格数据最起码有列、数据、转换原始数据这3项
Ext.onReady(function(){
var columns = [
{header:'编号',dataIndex:'id',width:50,editor: {//在每行需要更改的地方加上想编辑的类型,默认textfield
allowBlank: false
}
},
{header:'名称',dataIndex:'name',width:280,editor:{
allowBlank: false,
vtype: 'email'
}
},
{header:'描述',dataIndex:'descn',width:150}
]; var data = [
['1','shuyangyang@aliyun.com','descn1'],
['2','shuyangyang@163.com','descn2'],
['3','shuyangyang@yahoo.com.cn','descn3'],
['4','shuyangyang@tom.com','descn4'],
['5','shuyangyang@sina.com','descn5']
]; var store = new Ext.data.ArrayStore({
data: data,
fields: [
{name: 'id'},
{name: 'name'},
{name: 'descn'}
]
});
store.load(); var rowEditing = Ext.create('Ext.grid.plugin.RowEditing', {
saveBtnText: '保存',
cancelBtnText: "取消",
autoCancel: false,
clicksToMoveEditor: 1, //双击进行修改 1-单击 2-双击 0-可取消双击/单击事件
autoCancel: false,
listeners:{
edit:function(e){
/* var myMask = new Ext.LoadMask(Ext.getBody(), {
msg: '正在修改,请稍后...',
removeMask: true //完成后移除
});
myMask.show(); */
console.info(e.context.record);
//e.context.record为更改的这行的数据,获某个值可以用get方法,比如下面
var id = e.context.record.get('id'); //比如修改了id,在这里就可以获取id
//e.context.record.fields.items为修改的这行字段名,这是一个数组集合,e.context.record.fields.items[0].name为第一列的名称,以此类推
// 更新提示界面(供调试使用)
Ext.Msg.alert('您成功修改信息', "修改的内容是:" + e.context.record + "\n 修改的字段是:"+ e.context.record.fields.items[1].name +"\n 修改的id为"+id);//取得更新内容
}
//当然这里你也可以自定义一个ajax来提交到后台,大家自由发挥,这里不多写。
}
}); var grid = new Ext.grid.GridPanel({
title:'表格的扩展插件--行编辑',
width: 500,
height: 400,
renderTo: 'grid',
store: store,
columns: columns,
plugins: [rowEditing]
}); });
后记:RowEditing的缺点:当前编辑的对象限于一行中的一个单元格(列),编辑后要么选择保存,要么选择取消,怎样在一行中的所有列全部编辑完后提交呢?
查询API,是这样介绍RowEditing的:
“这个Ext.grid.plugin.RowEditing插件将会注入在grid的进行级别的编辑的时候。 在开始编辑的时候, 一个小的浮动对话框会显示相应的行。每个编辑栏将显示一个字段进行编辑。 还有按钮用来保存和取消所有的编辑。”
看来RowEditing针对的对象只是一个字段?
ExtJS4.2学习(13)基于表格的扩展插件---rowEditing的更多相关文章
- ExtJS4.2学习(14)基于表格的扩展插件(2)(转)
鸣谢:http://www.shuyangyang.com.cn/jishuliangongfang/qianduanjishu/2013-11-26/184.html --------------- ...
- ExtJS4.2学习(12)基于表格的右键菜单(转)
鸣谢:http://www.shuyangyang.com.cn/jishuliangongfang/qianduanjishu/2013-11-24/181.html --------------- ...
- ExtJS4.2学习(九)属性表格控件PropertyGrid(转)
鸣谢网址:http://www.shuyangyang.com.cn/jishuliangongfang/qianduanjishu/2013-11-15/178.html ------------- ...
- ExtJS4.2学习(15)树形表格(转)
鸣谢:http://www.shuyangyang.com.cn/jishuliangongfang/qianduanjishu/2013-11-27/185.html --------------- ...
- ExtJS4.2学习(10)分组表格控件--GroupingGrid(转)
鸣谢网址:http://www.shuyangyang.com.cn/jishuliangongfang/qianduanjishu/2013-11-17/179.html ------------- ...
- ExtJS4.2学习(四)Grid表格中文排序问题(转)
鸣谢:http://www.shuyangyang.com.cn/jishuliangongfang/qianduanjishu/2013-11-07/173.html --------------- ...
- ExtJS4.2学习(三)Grid表格(转)
鸣谢:http://www.shuyangyang.com.cn/jishuliangongfang/qianduanjishu/2013-11-07/172.html --------------- ...
- ExtJS4.2学习(11)可拖放的表格(转)
鸣谢:http://www.shuyangyang.com.cn/jishuliangongfang/qianduanjishu/2013-11-18/180.html --------------- ...
- 提高工作效率的神器:基于前端表格实现Chrome Excel扩展插件
Chrome插件,官方名称extensions(扩展程序):为了方便理解,以下都称为插件. 我们开发的插件需要在浏览器里面运行,打开浏览器,通过右上角的三个点(自定义及控制)-更多工具-拓展程序-打开 ...
随机推荐
- Ajax中解析Json的两种方法详解
eval(); //此方法不推荐 JSON.parse(); //推荐方法 一.两种方法的区别 我们先初始化一个json格式的对象: var jsonDate = '{ "name&qu ...
- Bootstrap之Footer页尾布局(2015年05月28日)
直接上页尾部分的代码: <!--采用container-fluid,使得整个页尾的宽度为100%,并设置它的背景色--><footer class="container-f ...
- Httpclient 和jsoup结和提取网页内容(某客学院视频链接)
最近在极客学院获得体验会员3个月,然后就去上面看了看,感觉课程讲的还不错.整好最近学习Android,然后去上面找点视频看看.发现只有使用RMB买的会员才能在上面下载视频.抱着试一试的态度,去看他的网 ...
- Java Thread UncaughtExceptionHandler
有没有发生过这样的情况,你写的工作线程莫名其妙的挂了,如果不是被你刚好看到,拿只能抓瞎了,不知道啥原因了,因为异常的时候只会把stack trace打在控制台上,不会记在你想记得错误日志里,头皮都抓破 ...
- Git 的简单使用
一直在使用Git,仅限于简单的使用,但还是记不住几个简单.在这边总结一下,加深印象,也方便查找. 安装Git 平常主要在windows和ubuntu上工作,就以windows为例,Linux和Mac平 ...
- Xamarin android PreferenceActivity 实现应用程序首选项设置(一)
应用程序首选项屏幕 类似系统设置界面. PreferenceActivity 是另一种类型的Activity,通过PreferenceActivity 可以以最少量的工作显示某些Preference列 ...
- js中 在数组中删除重复的元素(自保留一个)
例如:var student = [‘qiang’,’ming’,’tao’,’li’,’liang’,’you’,’qiang’,’tao’]; 第一种思路是:遍历要删除的数组arr, 把元素分别放 ...
- 当前标识(NT AUTHORITY\NETWORK SERVICE)没有对“C:\WINDOWS2\Microsoft.NET\Framework\v4.0.30319\Temporary ASP.NET Files”的写访问权限。
卸载了域控制器之后,IIS出现“当前标识(NT AUTHORITY\NETWORK SERVICE)没有对“C:\WINDOWS2\Microsoft.NET\Framework\v4.0.30319 ...
- php入门常量
常量像变量一样,用于临时存储一个值,但是常量在许多方面与变量不同. 常量:1.是在程序执行期间无法改变数据,常量的作用域是全局的.2.常量的命名与与变量相似,只是不带美元符号“$”.一个有效的常量名由 ...
- 2W/月和1W/月的工作,你会怎么选?
只看标题的话,肯定有不少人会选择月薪 2W 的工作,很明显,钱多嘛!但实际上,这里是有前提的,完整的问题如下: 一份月薪 2W,但加班无底线,基本没有自由时间的工作,和一份月薪 1W,但正常工作时长, ...