0 0

grid修改后数据保存问题5

最近在研究ext grid数据保存,发现有个问题始终想不通。ext.grid 获取到修改的数据如何区分修改的数据操作类型。如:新增的记录、修改的记录和删除的记录,虽然内获取到grid中的所有字段。但如何知道所有的被修改记录中哪条记录是新增进去的、哪条记录是被修改的、哪条记录是新增后被删除的、哪条记录是在原纪录上被修改的?
以下是部分代码:
var grid = new Ext.grid.EditorGridPanel({
                       title:'显示内容',
                       loadMask:true,
                       store: store,
                       cm: cm,
                       sm: sm,
                       width: 600,
                       height: 280,
                       renderTo:'griddiv',
                       viewConfig:{
                       columsText:'显示的列',
                       sortAscText:'升序',
                       sortDescText:'降序',
                       forceFit:true
                       },
                       tbar: new Ext.Toolbar(['-', {
            text: '添加一行',
            handler: function(){
                var p = new Record({
                    customersid:'',
                    customername:'',
                    operatortime:''
                });
                grid.stopEditing();
                store.insert(0, p);
                grid.startEditing(0, 0);
            }
        }, '-', {
            text: '删除一行',
            handler: function(){
                Ext.Msg.confirm('信息', '确定要删除?', function(btn){
                    if (btn == 'yes') {
                        var sm = grid.getSelectionModel();
                        var selectedRow = sm.getSelected();
                        store.remove(selectedRow);
                    }
                });
            }
        }, '-',{
                   xtype:"button",
                   text: '保存',
   handler: function(){
                var m = store.modified.slice(0);
                var jsonArray = [];
                Ext.each(m, function(item) {
                    jsonArray.push(item.data);
                });
                Ext.lib.Ajax.request(
                    'POST',
                    '10_03_01.jsp',
                    {success: function(response){
                        Ext.Msg.alert('信息', response.responseText, function(){
                            store.reload();
                        });
                    },failure: function(){
                        Ext.Msg.alert("错误", "与后台联系的时候出现了问题");
                    }},
                    'data=' + encodeURIComponent(Ext.encode(jsonArray))
                );
            }
                   }])
问题补充:
afteredit 这个方法我想到过,但是还是没有办法区分删除的数据啊
问题补充:
用数组的方式我也想过,如果用数组的话,那么对于新增和删除的数据都可以通过数组中的一个标志来实现,这样的话我导出的数据中必须要存在一个PK保证唯一性。那么这样做的话通用性势必会差上不少。不知道EXT框架有没有区分这个数据方法。
2009年6月17日 20:54

5个答案 按时间排序 按投票排序

0 0

采纳的答案

难道你修改到时候不需要一个id么?

2009年6月17日 22:06
0 0

多一个主键到value很有必要呀,也费不了多少损失

2009年6月17日 22:06
0 0

你可以再grid上面保存一个数组.用这个数组来保存删除记录的id.到时候更新的时候把这个数组一并提交到后台即可


不论是否是新增记录都不怕啦.反正只要你前面删除了.grid的数组就去掉相应的id即可

2009年6月17日 21:34
0 0

beforeedit : ( Object e )
Fires before cell editing is triggered. The edit event object has the following properties grid - This grid record ...
Fires before cell editing is triggered. The edit event object has the following properties

    * grid - This grid
    * record - The record being edited
    * field - The field name being edited
    * value - The value for the field being edited.
    * row - The grid row index
    * column - The grid column index
    * cancel - Set this to true to cancel the edit or return false from your handler.

Listeners will be called with the following arguments:

    * e : Object
      An edit event (see above for description)

2009年6月17日 21:11
0 0

Store 里面有 getModifiedRecords() : Ext.data.Record[]  这个方法是获得所有修改过的记录


EditorGridPanel有这么个事件

afteredit : ( Object e )
Fires after a cell is edited. The edit event object has the following properties grid - This grid record - The reco...
Fires after a cell is edited. The edit event object has the following properties

    * grid - This grid 网格
    * record - The record being edited 当前修改的记录
    * field - The field name being edited 当前修改的字段
    * value - The value being set 修改后的value
    * originalValue - The original value for the field, before the edit. 修改前的value
    * row - The grid row index 行
    * column - The grid column index 列

Listeners will be called with the following arguments:

    * e : Object
      An edit event (see above for description)

利用这些就可以了

2009年6月17日 21:10

相关推荐

    保存GRID数据示例

    #region//--------修改数据就将数据保存并显示 if (MessageBox.Show("是否保存数据?", "系统消息", MessageBoxButtons.OKCancel, MessageBoxIcon.Question, MessageBoxDefaultButton.Button2) == DialogResult....

    ExtJs4.1 treegrid CRUD 读取、新增、修改、删除

    //将grid更新为已保存状态(客户端) commit:function(records){ Ext.Array.each(records,function(record){ record.updateInfo(); record.commit(); }); } //刷新tree指定的的节点 store.load({node:node}); //...

    PB数据窗口source介绍及举例

    通常用修改processing属性,可以把你的数据窗口由grid变成freeform或其它类型 例:freeform:0 grid:1 3.header()行 可以整行复制粘贴,并命名为header[1],header[2],这样可以让数据窗口有多个header 4.table()行 这里...

    streamlit-aggrid

    流式aggrid AgGrid是Web前端的一个令人敬畏的网格。 有关更多信息, 。 如果要使用企业功能,请考虑从Ag-Grid购买许可证! 评论如果您喜欢它或 安装 pip install streamlit-aggrid 快速使用 创建一个example.py...

    DataGridView数据编辑模板

    CancelData 取消数据修改的方法,具体功能中调用该过程取消数据修改 1.2.2 BaseGridEdit BaseGridEdit是所有直接使用DataGridView进行编辑的功能的基类。BaseGridEdit从BaseEditClass继承。 自定义属性 名称 说明 ...

    delphi xe 10.2.3 fmx grid 多元化表格 支持合并单元格 单独设置背景色

    固定行和列是任何时候不许编辑的,但是可以代码修改设置 2,可以设置背景色(包括固定好和表格内部背景色,非固定单元格背景只对新建单元格有效) 3,可以合并单元格(横向竖向均可合并,支持横竖同时合并单元格效果) 4,边框...

    repertory-grid-tool:用于管理剧目网格访谈的网络表单

    Repertory Grid Tool 是一种 Web 表单,可让您管理 Repertory Grid 访谈。 遵循凯利 (1955) 的,假设人们用他们自己的术语来解释...网页在更改时自动保存数据。 此时,您无法访问或检索此数据(除了通过 javascript

    基础地理信息数据库管理系统.doc

    元数据信息修改、添加、删除、保存等 ); 元数据更新入库 (元数据检查、元数据历史版本,元数据与对应基础地理数据关联,同步更新)。 10、系统管理 用户与权限管理(用户、角色、权限等添加、修改、删除、保存)...

    mysql应用连接数据库工具

    sqlyog是连接各种数据库的可视化工具,非常良好。...支持更改数据表类型为ISAM、MYISAM、MERGE、HEAP、InnoDB、BDB。 刷新数据服务器、日志、权限、表格等。 诊断数据表--检查、压缩、修补、分析。

    VB操作EXCEL技巧

    如何使程序具有修改后退出提示保存的功能(可以推广到任何数据库应用) 最后还加了个好玩的功能:将图片转换成EXCEL拚图(骗女孩子专用)。 不过这个功能超慢,不是慢在VB的Point方法上, 而是慢在EXCEL设置单元格背景色...

    基础地理信息数据库管理系统.pdf

    元数据信息修改、添加、删除、保存等); 元数据更新入库 (元数据检查、元数据历史版本,元数据与对应 基础地理数据关联,同步更新)。 10、系统管理 用户与权限管理(用户、角色、权限等添加、修改、删除、保 存)...

    SQLyog Ultimate 9.2.0 破解版

    SQLyog 是一个易于使用的、... 24、支持更改数据表类型为ISAM, MYISAM, MERGE, HEAP, InnoDB, BDB 25、刷新数据服务器、日志、权限、表格等; 26、诊断数据表:检查、压缩、修补、分析。 安装后运行补丁,本人亲测可用

    SQLyog数据库检查工具(mysql),数据库工具

    SQLyog 是一个快速而简洁的图形化管理MYSQL数据库的工具,它能够在... 支持更改数据表类型为ISAM、MYISAM、MERGE、HEAP、InnoDB、BDB。 刷新数据服务器、日志、权限、表格等。 诊断数据表--检查、压缩、修补、分析。

    SQLyog-10.0.0-0客户端.zip

    SQLyog 是一个易于使用的、快速而简洁的图形化管理MYSQL...24、支持更改数据表类型为ISAM, MYISAM, MERGE, HEAP, InnoDB, BDB 25、刷新数据服务器、日志、权限、表格等; 26、诊断数据表:检查、压缩、修补、分析;

    SQLyog814Ent-keygen

    SQLyog 是一个易于使用的、快速而简洁的图形化管理MYSQL... 24、支持更改数据表类型为ISAM, MYISAM, MERGE, HEAP, InnoDB, BDB 25、刷新数据服务器、日志、权限、表格等; 26、诊断数据表:检查、压缩、修补、分析;

    SQLyog_9.6.3(带注册码)

    SQLyog 是一个易于使用的、快速而简洁的图形化管理...24、支持更改数据表类型为ISAM, MYISAM, MERGE, HEAP, InnoDB, BDB 25、刷新数据服务器、日志、权限、表格等; 26、诊断数据表:检查、压缩、修补、分析;

    SQLyog v8.32 Professional/Enterprise/Ultimate注册码

    SQLyog 是一个易于使用的、快速而简洁的图形化管理MYSQL... 24、支持更改数据表类型为ISAM, MYISAM, MERGE, HEAP, InnoDB, BDB 25、刷新数据服务器、日志、权限、表格等; 26、诊断数据表:检查、压缩、修补、分析;

    SQLyog 图形化管理MYSQL数据库的工具

    SQLyog 是一个易于使用的、快速而简洁的图形化管理MYSQL... 24、支持更改数据表类型为ISAM, MYISAM, MERGE, HEAP, InnoDB, BDB 25、刷新数据服务器、日志、权限、表格等; 26、诊断数据表:检查、压缩、修补、分析;

    SQLyog-6.1

    SQLyog 是一个易于使用的、快速而简洁的图形化管理MYSQL...24、支持更改数据表类型为ISAM, MYISAM, MERGE, HEAP, InnoDB, BDB 25、刷新数据服务器、日志、权限、表格等; 26、诊断数据表:检查、压缩、修补、分析;

    SQLyog Ultimate 9.6.2.0(带注册码)

    SQLyog 是一个易于使用的、快速而简洁的图形化管理MYSQL...24、支持更改数据表类型为ISAM, MYISAM, MERGE, HEAP, InnoDB, BDB 25、刷新数据服务器、日志、权限、表格等; 26、诊断数据表:检查、压缩、修补、分析;

Global site tag (gtag.js) - Google Analytics