如何灵活快速的掌握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. 基于visual Studio2013解决C语言竞赛题之1027 YN

          题目 解决代码及点评 /* 计算Yn的值,直到|Yn - Yn-1|<10-6为止,并打印出此时共作了多少次COS计算. 提示:Yn+1=COS(Yn),故本 ...

  2. uva 620 Cellular Structure

    题目连接:620 - Cellular Structure 题目大意:给出一个细胞群, 判断该细胞的可能是由哪一种生长方式的到的, 输出该生长方式的最后一种生长种类, "SIMPLE&quo ...

  3. Effective C++_笔记_条款09_绝不在构造和析构过程中调用virtual函数

    (整理自Effctive C++,转载请注明.整理者:华科小涛@http://www.cnblogs.com/hust-ghtao/) 为方便采用书上的例子,先提出问题,在说解决方案. 1 问题 1: ...

  4. C语言sendto()函数-经socket传送数据以及recvfrom函数《转》

    相关函数:send, sendmsg, recv, recvfrom, socket 头文件:#include <sys/types.h>   #include <sys/socke ...

  5. HOOK自绘原理 good

    做“HOOK文件打开/保存对话框”的过程中,我首先研究了界面库的相关知识.界面库一般都是由C/C++这种中低级语言编码,这是因为在Windows下的界面库实现技术大都以直接操作控制Windows的消息 ...

  6. WinExec函数,启动其他应用程序

    WinExec The WinExec function runs the specified application. Note  This function is provided only fo ...

  7. [置顶] JSP分页,使用Hibernate+mysql

    此代码为博主参考巴巴运动网源码所得,大部分一样,略有修改,在这里分享给大家,也方便自己以后写代码直接copy,看网上很多分页代码JSP里是用JAVA代码,博主原来也是这样,看到源码了解了JSTL,建议 ...

  8. 关于时间,日期,星期,月份的算法(Java中Calendar的用法)(一)

    package cn.outofmemory.codes.Date; import java.util.Calendar; import java.util.Date; public class Ca ...

  9. ios添加pre和post build action

    再vs中,我们可以很方便的再build前.后执行一些脚本为我们做点什么事情.再ios中怎么搞呢,哪必然是对xcode进行操作了.再google搜索了一把,有说操作Scheme的也有说再直接再targe ...

  10. centos7 opera济览器安装

    网网下rpm安装包: http://www.opera.com/computer/thanks?partner=www&par=id%3D39136%26amp;location%3D403& ...