鸣谢: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: {//在每行需要更改的地方加上想编辑的类型,默认textfieldallowBlank: 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针对的对象只是一个字段?

转载于:https://www.cnblogs.com/wql025/p/4982736.html

ExtJS4.2学习(13)基于表格的扩展插件---rowEditing相关推荐

  1. ExtJS4.2学习(14)基于表格的扩展插件(2)

    我曾经在第6节里讲到表格分页,还记得之前的分页组件是什么样的吗? 上面只有文字显示,我们来为其制作的更美观点,好吧,不卖关子了,讲本节的内容:进度条分页控件,这是表格扩展组件. 首先我们需要引入扩展组 ...

  2. ExtJS4.2学习(三)Grid表格(转)

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

  3. ExtJS4.2学习(10)分组表格控件--GroupingGrid

    分组表格控件在我们的开发中经常被用到,GroupingGrid分组表格就是在普通表格的基础上,根据某一列的数据显示表格中的数据分组的表格控件.举个例子给大家,比如某些信息用树形显示觉得有点大才小用,树 ...

  4. ExtJS4.2学习(10)分组表格控件--GroupingGrid(转)

    鸣谢网址:http://www.shuyangyang.com.cn/jishuliangongfang/qianduanjishu/2013-11-17/179.html ------------- ...

  5. python structure_GitHub - CYZYZG/Data_Structure_with_Python: 这是我在学习《基于Python的数据结构》的时候的笔记与代码...

    Data_Structure_with_Python 这是我在学习<基于Python的数据结构>的时候的笔记与代码 主要参考:数据结构与算法(Python) 对于算法的时间效率,我们可以用 ...

  6. 初探强化学习(7)基于模型的强化学习的应用综述

    本文是直接翻译一篇文章的,我先把原文地址放在这里. 原文名字为:Survey of Model-Based Reinforcement Learning: Applications on Roboti ...

  7. 动手深度学习13——计算机视觉:数据增广、图片分类

    文章目录 一.数据增广 1.1 为何进行数据增广? 1.2 常见图片增广方式 1.2.1 翻转 1.2.2 切割(裁剪) 1.2.3 改变颜色 1.2.4 综合使用 1.3 使用图像增广进行训练 1. ...

  8. 从零开始的ZYNQ学习(基于矿卡EBAZ4205)(四)

    前情提要: 从零开始的ZYNQ学习(基于矿卡EBAZ4205)(一) 从零开始的ZYNQ学习(基于矿卡EBAZ4205)(二) 从零开始的ZYNQ学习(基于矿卡EBAZ4205)(三) 文章目录 0. ...

  9. 【专注学习】基于Arcgis的python学习1

    提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档 [专注学习]基于Arcgis的python学习1 前言 一.主体思路流程? 二.需要用到的函数 1.清除所有变量 2.读入数据-loa ...

  10. java propertygrid_ExtJS4.2学习(九)属性表格控件PropertyGrid

    PropertyGrid是在上节我们说的Editor的基础上开发的更灵活的高级表格组件,下面我们来看下它的功能和应用方式: 属性表格扩展自EditGrid,所以可以直接编辑右边的内容.注意,只有右边的 ...

最新文章

  1. 关于$ORACLE_HOME/bin/oracle文件属性
  2. opencv-从设备获取视频并且一帧一帧的保存下来
  3. 异常-主动抛出异常案例演练
  4. jquery官网打不开难以下载,不妨试试webjars
  5. java 设计模式 示例_Java中的访问者设计模式–示例教程
  6. 信息学奥赛一本通(1185:单词排序)
  7. 草稿 断开式绑定combobox
  8. saas 困难_将不可信的Javascript作为SaaS运行非常困难。 这就是我驯服恶魔的方式。...
  9. 计算机网络(一)——一些概念
  10. @程序员,解读 5G 中性命攸关的时延! | 技术头条
  11. linux daemon 函数,Daemon 进程的创建
  12. c语言误差椭圆,平差计算
  13. jsp为什么被淘汰了?
  14. [MAC 苹果电脑] [Linux 系统] ”苹果电脑使用虚拟机安装 Linux Ubuntu系统”教程
  15. 2021-08-18 HarmonyOS实战 CommonDialog的使用
  16. python控制多个屏幕_使用python的多个屏幕
  17. vue 调色器和js-web-screen-shot截图插件
  18. 基于空间金字塔网络的光流估计
  19. Android WebView截屏空白或者一片黑如何解决?使用MediaProjection截图。
  20. Revit土建翻模:梁端点连接方式的操作及梁生成

热门文章

  1. BZOJ1827[USACO 2010 Mar Gold 1.Great Cow Gathering]——树形DP
  2. Noise,Error,wighted pocket Algorithm
  3. OC---Math公式
  4. Python核心编程--学习笔记--8--条件与循环
  5. android UI进阶之android中隐藏的layout 抽屉的运用
  6. 安装配置管理 之 JRE 安装和配置,以适合JAVA程序运行所具备的环境
  7. PIC16F877A开发板 数码管计数器实验
  8. 同步、异步、堵塞、非堵塞概念总结
  9. 第41课 WEB代理、Haproxy 配置详解及Haproxy ACL使用
  10. C#多态“说来也说”——逻辑层BLL中的多态使用