有没有办法让ExtJS4 PropertyGrid(Ext.grid.property.Grid)不可编辑?
没有“可编辑”或“只读”配置选项AFAICS。
答案 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上测试它。