只读PropertyGrid

时间:2012-11-01 10:15:27

标签: extjs extjs4

有没有办法让ExtJS4 PropertyGrid(Ext.grid.property.Grid)不可编辑?

没有“可编辑”或“只读”配置选项AFAICS。

5 个答案:

答案 0 :(得分:5)

另一种解决方案是添加一个监听器,以防止启动编辑组件:

    listeners: {
        'beforeedit': {
            fn: function () {
                return false;
            }
        }
    }

此解决方案的问题是,无法标记要复制(Ctrl + C)内容的单元格。

答案 1 :(得分:2)

还有一个决定,但不允许在此后选择文字:myGrid.findPlugin('cellediting').disable();

答案 2 :(得分:1)

使用sourceConfig将编辑器设置为Ext.form.DisplayField

Ext.create('Ext.grid.PropertyGrid', {
    sourceConfig: {
        field1: {
            displayName: 'Editable Field'
        },
        field2: {
            displayName: 'Readonly Field',
            editor: Ext.create('Ext.form.DisplayField')
        }
    },
    source: {
        field1: "Some property",
        field2: "Some other property",
    }
});

答案 3 :(得分:0)

一种解决方案是阻止选择任何细胞:

var myPropertyGrid = Ext.create('Ext.grid.property.Grid', { ... });
myPropertyGrid.getSelectionModel().setLocked(true); 

答案 4 :(得分:0)

Ext.define('MyPropertyGrid', {
    extend: 'Ext.grid.property.Grid',
    xtype: 'mypropertygrid',
    source: {
        field1: 'value of field1',
        field2: 'value of field2'
    },
    sourceConfig: {
        field1: {
            editor: {disabled: true}
        },
        field2: {
            editor: {disabled: true}
        }
    }
});

我在Extjs 6.0上测试它。