Extjs 只读属性网格
有没有办法使ExtJS4 PropertyGrid(Ext.grid.property.grid)不可编辑Extjs 只读属性网格,extjs,extjs4,Extjs,Extjs4,有没有办法使ExtJS4 PropertyGrid(Ext.grid.property.grid)不可编辑 AFAICS没有“可编辑”或“只读”配置选项。一种解决方案是防止选择任何单元格: var myPropertyGrid = Ext.create('Ext.grid.property.Grid', { ... }); myPropertyGrid.getSelectionModel().setLocked(true); 另一种解决方案是添加侦听器,以防止启动编辑组件: list
AFAICS没有“可编辑”或“只读”配置选项。一种解决方案是防止选择任何单元格:
var myPropertyGrid = Ext.create('Ext.grid.property.Grid', { ... });
myPropertyGrid.getSelectionModel().setLocked(true);
另一种解决方案是添加侦听器,以防止启动编辑组件:
listeners: {
'beforeedit': {
fn: function () {
return false;
}
}
}
此解决方案的问题是,不能将单元格标记为复制(Ctrl+C)内容 使用
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",
}
});
还有一个决定,但此后不允许选择文本:
myGrid.findPlugin('cellediting').disable()代码>
我在Extjs 6.0上测试了它。我还没有尝试过,但是有一个禁用的配置默认为false,尝试将其设置为true?@Amalea不错的主意,但它只是完全禁用了这个东西,给出了一个空的灰色面板(正如我猜的那样)。。。实际上没有,它确实显示属性,但是在半透明的灰色遮罩下。如果我能摆脱这个掩码,它应该会起作用。虽然这段代码可能会回答这个问题,但最好包含一些上下文,解释它是如何工作的以及何时使用它。从长远来看,纯代码的答案是没有用的。这在extjs 6.5.3中对我很有用。我在afterrender事件处理程序中进行了调用。
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}
}
}
});