2011-11-04 59 views
1

我想使用FormPanel的show()函数来显示它弹出。

但下面的代码不显示任何内容。但如果我通过这个formPanel到一个ExtJS窗口对象和调用窗口show()函数工作正常。

我想避免创建一个新的Window对象来显示一个表单面板。我怎么做?ExtJS,FormPanel的show()函数问题

var formPanelItems = ... 
    var formPanel = new Ext.form.FormPanel({ 
     width: 300px, 
     height: 300px, 
     items  : formPanelItems, 
    }); 
    formPanel.show(); 

回答

0

您需要设置配置属性floatable: true。它会告诉该控件本身呈现而不是网页上的一些父元素,而是直接body

http://docs.sencha.com/ext-js/4-0/source/Panel3.html#Ext-panel-Panel-cfg-floatable

+0

我们ExtJS的3.1版,可浮动选项不可用在这个版本。对3.1中的相似选项有什么想法? – jgg

+0

我已经检查了我的本地文档3.1修订版及其存在(从'Ext.Panel'派生而来,也存在于3.4版本的在线http://docs.sencha.com/ext-js/3-4/#! /api/Ext.form.FormPanel-cfg-floating –

2

每内线的doc,你需要设置配置属性floating:true并明确地设置渲染后的位置,因为它是绝对定位的。

样本:

var p = new Ext.form.FormPanel({ 
     title:'test', 
     width: 300, 
     height: 150, 
     html:'a floating panel', 
     floating: true, 
     renderTo: Ext.getBody() 
}); 
p.setPosition(200,200); 
+0

'renderTo:Ext.getBody()'应该将面板居中,因此,'setPosition()'可能不是必需的(我使用Ext 5. *)。 – Thomas