我正在使用ExtJS 4属性网格,它可以列出在另一个网格中单击时显示的三种不同类型的项目。一种项目必须隐藏一个特定字段,因此不会显示,但编辑其他字段导致的任何更新都不会受到可能缺少的信息的影响。
尝试使用hidden / isHidden / visible / isVisible,带引号和不带引号的true / false值,但没有效果,并在propertyGrid中显示ShapeLength字段。
sourceConfig中是否有“hidden:true”设置,我可以以某种方式应用?
示例代码:
var lengthDisplayName = '';
if(record.data.Type_ID == 'Circle(s)'){
lengthDisplayName = 'Radius (mm)';
}
if(record.data.Type_ID == 'Triangle(s)'){
lengthDisplayName = 'Side Length (mm)';
}
detailsGrid.sourceConfig['ShapeLength'] = {displayName: lengthDisplayName, type: 'number'};
if(record.data.Item_No == '-1'){
detailsGrid.sourceConfig['ShapeLength'] = {
displayName: lengthDisplayName,
type: 'number'
//, hidden/isVisible/visible value set here
}
};
答案 0 :(得分:0)
hidden
没有sourceConfig
属性。但有一种可能性是从sourceConfig中删除属性,并重新插入它,如果它应该再次可见。
delete detailsGrid.sourceConfig['ShapeLength'];
答案 1 :(得分:0)
指向同事的答案 - 我可以在propertyGrid中获取getRowClass并在源数据上应用隐藏样式以识别属性和要隐藏的行名称,否则返回:
detailsGrid.getView().getRowClass = function(row) {
if(detailsGrid.source['Item_No'] == '-1' && row.data.name == 'ShapeLength')
return 'x-hidden';
return;
};