我正在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);