【问题标题】:How row-editing works in extjs 4.2?extjs 4.2 中的行编辑如何工作?
【发布时间】:2013-06-20 19:19:36
【问题描述】:

试图了解行编辑的工作原理。这是 Sencha 网站上的 example

所以我看到我们可以编辑和保存行元素,但是有人可以逐步解释我更新/保存的列的存储位置吗?以及如何访问它们?

Sencha 演示也有行编辑的代码。非常感谢

【问题讨论】:

    标签: grid extjs4.2


    【解决方案1】:

    使用RowEditing 插件所做的任何更改都会直接对您正在编辑的网格存储中的模型进行。然后,您可以随心所欲地使用该商店将其保存到服务器或使用store.sync() 的其他任何地方;

    保存使用行编辑器输入的数据的一种常用方法是将edit 侦听器添加到您的RowEditing 插件配置中,并让您的服务器在那里调用:

    var rowEditing = Ext.create('Ext.grid.plugin.RowEditing', {
        clicksToMoveEditor: 1,
        autoCancel: false,
        listeners: {
            edit: function(editor, context, eOpts) {
                var record = e.record;
                //do your processing here, e.g.:
                Ext.Ajax.request({
                    url: 'myServer/saveRecord',
                    params: { record: record }
                });
            }
        }
    })
    

    【讨论】:

    • 我已经使用此代码来编辑数据,但在 ajax 调用之前我没有得到编辑后的行的值。如何获取编辑后的数据?以及如何通过 ajax 将编辑后的数据发送到服务器端脚本。
    【解决方案2】:

    请检查这一行

    var record = e.record;
    

    这里的事件 e 没有在这个函数中定义。所以将其更改为 eOpts.record 以获取该记录

    Ext.data.JsonP.request({
                                url: url,
                                params: { record :  Ext.encode( record) } ,
                                success: function(data) {
                                    store.load();
                                },
                                failure : function(record, operation) {
                                    store.rejectChanges();
                                }
                            });
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2013-03-23
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2014-02-04
      相关资源
      最近更新 更多