Extjs4 RowEditing 的使用和更新方法
如何灵活快速的掌握RowEditing组件的应用,应大家的要求,今天给大家具体讲下该组件的使用。
1、创建
var rowEditing = Ext.create('Ext.grid.plugin.RowEditing',{
pluginId:'rowEditing',
saveBtnText: '保存',
cancelBtnText: "取消",
autoCancel: false,
clicksToEdit:2 //双击进行修改 1-单击 2-双击 0-可取消双击/单击事件
});
2、定义使用插件
Ext.define('SubBody_Grid', {
extend: 'Ext.grid.Panel',
alias: 'widget.SubBody_Grid',
collapsible: false,
iconCls: 'icon-grid',
//frame: true, //显示Grid整个框架
height: window.innerHeight,
border: true,
loadMask: true,
columnLines: true, //显示列线
selType: 'rowmodel',
plugins: [rowEditing], //定义使用插件
columns: [
{
dataIndex: "Partno",
width: 100,
sortable: true,
//flex: 1 // grid宽度减去固定列宽以后占一份;
text: '物料编号'
}, {
dataIndex: "PurQty",
width: 70,
editor: 'numberfield', //在需要更改的字段设置编辑,并指明类型
renderer: Ext.util.Format.numberRenderer('0.00'),
align: 'right',
sortable: true,
text: '采购数量'
}, {
dataIndex: "DeliveryDate",
width: 90,
renderer: Ext.util.Format.dateRenderer('Y-m-d'),
editor: 'datefield',
align: 'right',
sortable: true,
text: '交期'
。。。。。。。。。。。以下省略。。。。。。。。
3、定义保存更新事件
以上就定义完成了。但如何进行更改后的保存呢???
不管是添加还是修改,保存用的事件都是是grid的edit事件
可用两种方式来定义edit事件!!!!
1、在创建时定义方式:
var rowEditing = Ext.create('Ext.grid.plugin.RowEditing',{
pluginId:'rowEditing',
saveBtnText: '保存',
cancelBtnText: "取消",
autoCancel: false,
clicksToEdit:2 //双击进行修改 1-单击 2-双击 0-可取消双击/单击事件
listeners:{
edit:function(e){
var myMask = new Ext.LoadMask(Ext.getBody(), {
msg: '正在修改,请稍后...',
removeMask: true //完成后移除
});
myMask.show();
var id = e.record.get('Item');
// 更新提示界面(供调试使用)
Ext.Msg.alert('您成功修改信息', "被修改的内容是:" + e.record.get("Item") + "\n 修改的字段是:"+ e.field +"\n 对应的id为"+id);//取得更新内容
Ext.Ajax.request({
url: '/ashx/erp/purchase/PO_Form_BodySub_Upd.ashx',
params: {
PONum:e.record.get('PONum'),
Item:e.record.get('Item'),
PurQty:e.record.get('PurQty'),
DeliveryDate:e.record.get('DeliveryDate')
},
success: function(response){
var result = Ext.decode(response.responseText);
if(result.succeed){
e.record.commit();
//隐藏
myMask.hide();
Ext.Msg.show({
title:'操作提示',
msg: result.msg,
buttons: Ext.Msg.YES,
icon: Ext.Msg.WARNING
});
}else{
myMask.hide();
Ext.Msg.show({
title:'操作提示',
msg: result.msg,
buttons: Ext.Msg.YES,
icon: Ext.Msg.WARNING
});
}
},
failure: function (response, opts) {
Ext.Msg.show({
title:'操作提示',
msg: '修改失败',
buttons: Ext.Msg.YES,
icon: Ext.Msg.WARNING
});
}
})
}
}
});
2、定义时不定义,之后进行再添加事件的方式
PO_SubPart_Grid.on("edit", afterEdit);
function afterEdit(e) {
var myMask = new Ext.LoadMask(Ext.getBody(), {
msg: '正在修改,请稍后...',
removeMask: true //完成后移除
});
myMask.show();
var id = e.record.get('Item');
Ext.Msg.alert('您成功修改了信息', "被修改的内容是:" + e.record.get("Item") + "\n 修改的字段是:"+ e.field +"\n 对应的id为"+id);//取得更新内容
Ext.Ajax.request({
url: '/ashx/erp/purchase/PO_Form_BodySub_Upd.ashx',
params: {
PONum:e.record.get('PONum'),
Item:e.record.get('Item'),
PurQty:e.record.get('PurQty'),
DeliveryDate:e.record.get('DeliveryDate')
},
success: function(response){
var result = Ext.decode(response.responseText);
if(result.succeed){
e.record.commit();
//隐藏
myMask.hide();
Ext.Msg.show({
title:'操作提示',
msg: result.msg,
buttons: Ext.Msg.YES,
icon: Ext.Msg.WARNING
});
}else{
myMask.hide();
Ext.Msg.show({
title:'操作提示',
msg: result.msg,
buttons: Ext.Msg.YES,
icon: Ext.Msg.WARNING
});
}
},
failure: function (response, opts) {
Ext.Msg.show({
title:'操作提示',
msg: '修改失败',
buttons: Ext.Msg.YES,
icon: Ext.Msg.WARNING
});
}
})
};
Extjs4 RowEditing 的使用和更新方法的更多相关文章
- svn更新路径,解决办法详细步骤,eclipse里面的更新方法,svn废弃位置,Windows环境,svn服务器地址换了,如何更新本地工作目录
svn更新路径,解决办法详细步骤,eclipse里面的更新方法,svn废弃位置,Windows环境,svn服务器地址换了,如何更新本地工作目录 Windows下,svn服务器IP本来是内网一台服务器上 ...
- LoadRunner参数更新方法和数据分配
参数化的定义:使用指定的数据源中的值来替换脚本录制生成的语句中的参数. 对Vuser脚本进行参数化的好处: 1.减小脚本的大小 2.提供了使用不同的脚本的值执行脚本的能力 参数化涉及两个任务: 1.用 ...
- MVC LINQ中用封装的TSQL通用更新方法
把TSQL拿出来,做了一个封装,适用的所有表,更新有两种,普通更新和记数更新 看代码:这两个方法是写在DAL里的数据操作基类里的,只有它的子类可以用它,所以用protected做为限制 /// < ...
- 运用BeanUtils构建通用的查询 更新方法(个人拙作,不喜勿喷)
------------------------------------更新方法----------------------------------- public void update(Strin ...
- [其他]Android SDK离线文件路径以及安装更新方法
一.离线安装Android SDK文件路径 转载自:http://www.oschina.net/code/snippet_1539302_45940 Google TV Addon, Android ...
- BackTrack 5 R3 Metasploit更新方法及msfupdae,msconsole出错解决办法
更新Metasploit最新版本: #cd /opt/metasploit/ #rm -rf msf3 #git clone --depth=1 git://github.com/rapid7/met ...
- android studio gradle 两种更新方法更新
android studio gradle 两种更新方法更新 第一种.Android studio更新 第一步:在你所在项目文件夹下:你项目根目录gradlewrappergradle-wrapper ...
- Tomcat更新方法
tomcat更新方法最简单的就是上官网下载最新版的压缩包,然后用新版本的 lib 文件替换掉旧版本的 lib 文件 具体方法(偷懒做个搬运工):https://jingyan.baidu.com/ar ...
- 【SQL】sql update 多表关联更新方法总结
#表结构: 1.表一:Test1 Id name age 1 2 2.表二:Test2 Id name age 1 小明 10 2 小红 8 #实现将表Test2的name和age字段 ...
随机推荐
- MSSQL - 多表查询
SELECT u.UserNumber, u.UserName, c.CarNumber, c.CarName, c.CarEngine, s.BuyLs, s.BuyTime FROM Tb_Sal ...
- 图片热区——axure线框图部件库介绍
首先,我们将图片热区组建拖动到axure页面编辑区域 1. 图片热区为页面图片或者其他部件添加热区,添加交互 我们一般在做专题的时候,会遇到一些组合商品,但是又需要单独分别设置连接,如果是2张图片还好 ...
- 数据层交换和高性能并发处理(开源ETL大数据治理工具--KETTLE使用及二次开发 )
ETL是什么?为什么要使用ETL?KETTLE是什么?为什么要学KETTLE? ETL是数据的抽取清洗转换加载的过程,是数据进入数据仓库进行大数据分析的载入过程,目前流行的数据进入仓库的 ...
- 1.1.6-学习Opencv与MFC混合编程之---播放WAV音乐和 alpha融合功能
源代码:http://download.csdn.net/detail/nuptboyzhb/3961698 Alpha融合菜单项 1. 增加alpha融合菜单项,修改相应的属性,建立类向导 ...
- 如何学习php之吐槽
我也做了php一段时间了.从技术层面上解释吧. 深入学习任何的东西都要有个体系. 1 完整的学习整个体系结构.解决有什么的问题. 推荐看看这个.http://www.open-open.c ...
- PHP开发-上传文件
<?php /****************************************************************************** 参数说明: $max_ ...
- Delphi图像处理 -- 最大值
阅读提示: <Delphi图像处理>系列以效率为侧重点,一般代码为PASCAL,核心代码采用BASM. <C++图像处理>系列以代码清晰,可读性为主,全部使用C ...
- Cookie不能保存中文解决方式
在用cookie保存username的时候,发现cookie值不能存中文,报例如以下错: Control character in cookie value, consider BASE64 e ...
- Android颜色转换工具类ColorUtil
项目中需要根据ScrollView的滚动距离来动态设置Topbar的背景透明度,网上有类似的开源库FadingActionBar,使用的是ActionBar做的.而我的项目中并没有使用ActionBa ...
- Tair是一个高性能,分布式,可扩展,高可靠的key/value结构存储系统(转)
Tair是一个高性能,分布式,可扩展,高可靠的key/value结构存储系统! Tair专为小文件优化,并提供简单易用的接口(类似Map)Tair支持Java和C版本的客户端 Tair is a di ...