ExtJs:无法在表单中显示字段

时间:2015-08-22 21:46:38

标签: javascript extjs

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

表单面板中隐藏的文本字段很少,我想显示/隐藏。

当我运行此命令时:

  

Ext.getCmp(' PartsSell&#39)显示();

  

Ext.getCmp(' PartsSell&#39)。调用setVisible(真);

甚至

  

Ext.widget(' ObjectForm&#39)。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控制台的行为就像一切正常。

如果我设置隐藏' param to' false'显示该字段。

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

现在我可以通过

触发字段了

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

2 个答案:

答案 0 :(得分:1)

覆盖默认方法时,需要运行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);
    }
});

答案 1 :(得分:1)

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

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