ExtJS将propertyGrid sourceConfig中的一个元素设置为动态隐藏

时间:2014-04-07 16:10:54

标签: extjs

我正在使用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
    }
};

2 个答案:

答案 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;
};