extjs禁用单元格编辑

时间:2012-06-17 19:23:04

标签: extjs

如何从xml数据文件中禁用特定的单元格编辑?

像这样:

<price disabled="true">9.37</price>

请举个例子 提前致谢

1 个答案:

答案 0 :(得分:3)

首先,要从XML响应中读取属性,您需要在模型中包含属性mapping配置的字段,请参阅this post。在你的情况下像这样:

Ext.define('yourApp.model.Price', {
    extend: 'Ext.data.Model',
    fields: [
        {name: 'price',     type: 'float'},
        {name: 'disabled',  type: 'boolean',  mapping: 'price/@disabled'}
    ]
});

自从我使用XML响应以来已经有一段时间了,所以你可能不得不玩这个。

然后,您只需在gridpanel的beforeedit事件中加入一项检查,以防止在记录的disabled字段为真时进行编辑。

如果您正在使用MVC模式,它将是这样的:

// controllers init function
init: function() {

    this.control({

        'yourgridpanel': {

            // prevent disabled edits
            beforeedit: function(plugin, edit) {

                if (edit.record.get('disabled')) {
                    return false;
                }
            }
        }
    });
}

如果你没有使用MVC模式,那么处理程序将会是这样的:

yourGridPanel.on('beforeedit', function(plugin, edit) {
    if (edit.record.get('disabled')) {
        return false;
    }
});