ExtJs:不能在form中显示字段

ExtJs: cannot show field in form

本文关键字:显示 字段 form 不能 ExtJs      更新时间:2023-09-26

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

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

当我运行这个命令时:

Ext.getCmp (PartsSell),告诉();

Ext.getCmp (PartsSell) .setVisible(真正);

甚至

Ext.widget (ObjectForm) .getForm () .findField (PartsSell) .setVisible(真正);

什么都没发生!!

下面是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控制台的行为就像一切正常。

如果我将'hidden'参数设置为'false',则显示该字段。

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

现在我可以触发字段

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

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

类似:
Ext.ComponentQuery.query('#PartsSell')[0].setHidden(false);

当您覆盖默认方法时,您需要运行callParent()

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