如何在网格划线器移动时获取事件

时间:2014-09-11 14:08:27

标签: javascript extjs ext4

我有网格和rowediting插件...所以我需要获取首次编辑的记录,当插件启用并显示时,网格中的其他记录点击进行编辑... 也许一些' oneditchange'事件,但我发现文档中没有这样的内容。或者只是阻止编辑这个clicktomoveedit可能性

2 个答案:

答案 0 :(得分:1)

编辑(编辑,e,eOpts) 编辑单元格后触发。用法示例:

grid.on('edit', function(editor, e) {

    e.record.commit();
     console.log(e.value);  // the value you want
});

<强>参数

编辑:Ext.grid.plugin.CellEditing

e:对象 具有以下属性的编辑事件:

网格 - 网格 record - 已编辑的记录

字段 - 已编辑的字段名称

value - 设置的值 //您想要的值

originalValue - 编辑前字段的原始值。

row - 网格表行

column - 定义已编辑列的网格列。

rowIdx - 已编辑的行索引

colIdx - 已编辑的列索引

eOpts:Object

传递给Ext.util.Observable.addListener的选项对象。

覆盖:Ext.grid.plugin.Editing.edit

答案 1 :(得分:1)

为了防止在新版本期间选择其他网格记录,这可以提供帮助

    enableEditingProtection: true,
    skippingEditingProtection: false,

    editingPhantomRecord: false,

    initComponent: function() {
        var me = this;

        me.on('beforeedit', me.onBeforeEdit);
        me.on('beforeselect', me.onBeforeSelect);

        me.callParent(arguments);
    },

    skipEditingProtection: function() {
        this.skippingEditingProtection = true;
    },

    onBeforeEdit: function(editor, context) {
        if (this.enableEditingProtection &&
            !this.skippingEditingProtection &&
            editor.editing &&
            this.editingPhantomRecord
        ) {
            return false;
        }

        this.getSelectionModel().select(context.record);
        this.editingPhantomRecord = context.record.phantom;
        this.skippingEditingProtection = false;

        return true;
    },

    onBeforeSelect: function() {
        return !this.enableEditingProtection ||
            !this.getPlugin('row-editor') ||
            !(this.getPlugin('row-editor').editing && this.editingPhantomRecord);
    }