我正在ExtJs 4.2中构建MVC应用程序,并且有一个窗口和一个窗体。

表单面板上有几个我想显示/隐藏的隐藏文本字段。

当我运行以下命令时:


  Ext.getCmp('PartsSell')。show();


要么


  Ext.getCmp('PartsSell')。setVisible(true);


甚至


  Ext.widget('ObjectForm')。getForm()。findField('PartsSell')。setVisible(true);


什么都没发生!

这是formpanel代码段:

Ext.define('crm.view.ObjectForm', {
    extend      : 'Ext.form.Panel',
    header      : false,
    alias       : 'widget.ObjectForm',
    url         : 'action.php',
    id          : "ObjectForm",
    defaultType : 'textfield',
    initComponent: function() {
        Ext.apply(this, {
            items   : [
            {
                            fieldLabel  : 'label',
                            labelWidth  : 115,
                            hidden      : true,
                            allowBlank  : true,
                            name        : 'PartsSell',
                            itemId      : 'PartsSell',
                            xtype       : 'textfield',
                            vtype       : 'DigitsVtype',
                            width       : 150,
                            padding     : '0 0 0 15'
            },
            /* other stuff */]
        } );
        this.callParent(arguments);
    }
} );


FF / chrome控制台的行为就像一切正常。

如果我将“隐藏”参数设置为“假”,则显示该字段。

根据Tarabass和Drake的建议:
我在id上更改了itemId

现在我可以通过触发场

Ext.ComponentQuery.query('#PartsSell')[0].hide() / .show();

最佳答案

id: 'PartsSell'更改为itemId: 'PartsSell'
使用选择器'#PartsSell'选择组件。
然后使用方法setHidden(false)(由config system生成)将hidden设置为false。

就像是:
Ext.ComponentQuery.query('#PartsSell')[0].setHidden(false);

09-25 18:01