如何灵活快速的掌握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 的使用和更新方法的更多相关文章

  1. svn更新路径,解决办法详细步骤,eclipse里面的更新方法,svn废弃位置,Windows环境,svn服务器地址换了,如何更新本地工作目录

    svn更新路径,解决办法详细步骤,eclipse里面的更新方法,svn废弃位置,Windows环境,svn服务器地址换了,如何更新本地工作目录 Windows下,svn服务器IP本来是内网一台服务器上 ...

  2. LoadRunner参数更新方法和数据分配

    参数化的定义:使用指定的数据源中的值来替换脚本录制生成的语句中的参数. 对Vuser脚本进行参数化的好处: 1.减小脚本的大小 2.提供了使用不同的脚本的值执行脚本的能力 参数化涉及两个任务: 1.用 ...

  3. MVC LINQ中用封装的TSQL通用更新方法

    把TSQL拿出来,做了一个封装,适用的所有表,更新有两种,普通更新和记数更新 看代码:这两个方法是写在DAL里的数据操作基类里的,只有它的子类可以用它,所以用protected做为限制 /// < ...

  4. 运用BeanUtils构建通用的查询 更新方法(个人拙作,不喜勿喷)

    ------------------------------------更新方法----------------------------------- public void update(Strin ...

  5. [其他]Android SDK离线文件路径以及安装更新方法

    一.离线安装Android SDK文件路径 转载自:http://www.oschina.net/code/snippet_1539302_45940 Google TV Addon, Android ...

  6. BackTrack 5 R3 Metasploit更新方法及msfupdae,msconsole出错解决办法

    更新Metasploit最新版本: #cd /opt/metasploit/ #rm -rf msf3 #git clone --depth=1 git://github.com/rapid7/met ...

  7. android studio gradle 两种更新方法更新

    android studio gradle 两种更新方法更新 第一种.Android studio更新 第一步:在你所在项目文件夹下:你项目根目录gradlewrappergradle-wrapper ...

  8. Tomcat更新方法

    tomcat更新方法最简单的就是上官网下载最新版的压缩包,然后用新版本的 lib 文件替换掉旧版本的 lib 文件 具体方法(偷懒做个搬运工):https://jingyan.baidu.com/ar ...

  9. 【SQL】sql update 多表关联更新方法总结

    #表结构: 1.表一:Test1 Id name age 1     2     2.表二:Test2 Id name age 1 小明 10 2 小红 8 #实现将表Test2的name和age字段 ...

随机推荐

  1. if(男深圳集体户口&&女非深圳户口)深圳准生证办理材料及流程

    所需材料 一.女方需要办理流动人口婚育证明(蓝色的小本本). 办理材料.各地可能不同.这个是在女方的户籍所在地办理(最好在女方户籍所在地办理女方初婚未育证明). 二.男方在公司开出初婚未育证明. 三. ...

  2. VB.net总结

    .NET视频差点儿相同用时一周结束,总体感觉就是"走耳不走脑".刚開始看视频理解起来有一点困难,台湾口音以及台湾与大陆计算机术语的差异,让我把前几集相当于直接忽略过了(建议打算看这 ...

  3. Oracle_Database_11g_标准版_企业版__下载地址_详细列表

    Oracle_Database_11g_标准版_企业版__下载地址_详细列表 Oracle Database 11g Release 2 Standard Edition and Enterprise ...

  4. 基于visual Studio2013解决C语言竞赛题之1058打印数字

       题目 解决代码及点评 /************************************************************************/ /* 58 ...

  5. ALV 数值列负号前置 (EDIT_MASK应用)

    1.建立自定义函数 浮点数显示FUNCTION conversion_exit_zsign_output.*"---------------------------------------- ...

  6. SGU114-Telecasting station

    114. Telecasting station time limit per test: 0.5 sec. memory limit per test: 4096 KB Every city in ...

  7. 使用SetLocaleInfo设置时间后必须调用广播WM_SETTINGCHANGE,通知其他程序格式已经更改

    uses messages; Procedure SetDateFormat; //设置系统日期格式var buf:pchar; i:integer; p:DWORD;begin getmem(buf ...

  8. 怎样使用jstack诊断Java应用程序故障(转)

    最近一段时间,我们的生产系统升级频繁出现故障,具体故障现象是启动后10来分钟就出现交易缓慢,处理线程耗尽等现象,并且故障发生的频率蛮高的.经过详细的诊断和排查,终于发现了问题,是groovy在osgi ...

  9. CentOS6.4 安装Mysql

    虽说,新版的数据包可能会带上一些新特性,但是数据库对我而言,还是稳定版优先.因为新特性不一定我会用到.. 下载安装: yum list | grep mysql 因为是准备搞开发用的,所以只要安装my ...

  10. Bigcommerce:安装的出错解决方案

    我们在本地安装时报错了,具体如下: 1. The database details you entered are incorrect: You have an error in your SQL s ...