2011-10-03 123 views
0

我是新的extjs布局。 我有一个带有默认布局的表单面板。我添加了一个包含网格和两个按钮的字段集。我正在渲染一个窗体面板到div。表格面板布局问题在extjs2

事业部在JSP

<div id="mydiv"></div> 

FormPanel中的JS

var fp = new Ext.FormPanel(
       { 
        standardSubmit :true, 
        id :'panel', 
        autoHeight :true, 
        layout: 'border', 
        bodyCfg: { cls: 'template' }, 
        bodyPadding :10, 
        margin :'0 0 20', 
        frame :'true', 
        renderTo :'mydiv', 
        buttonAlign:'right', 
        items : [topPanel , fieldset ] 
    }); 

我想要的形式和网格被调整为每个窗口大小(窗口大小调整shold调整元素)现在如果尝试我调整窗口的大小,fieldset会根据窗口调整大小,但网格不是。

现在我给出了一个固定的高度和宽度。没有那个网格只是水平扩展。

我不想给任何高度的宽度面板,网格。如何实现?当我搜索我们是否将面板渲染到视口时,它将处理调整大小。如果是这样,那么我应该在extjs中创建一个视口并将其重定向到div?如果是的话那么该怎么做?

编辑:或者我必须使用CSS与div?

任何指针表示赞赏。 谢谢

回答

0

你可以创建一个视口,这将如你所说,照顾调整大小。

在视口内,您可以添加面板'项目'集合。如果您希望面板适合视口,则应使用“适合”布局。

东西沿着这些路线将是观念的正确类型:

var viewPort = new Ext.Viewport({ 
    id: "blaa", 
    items: [fp], 
    layout: "fit" 
)}; 

我没有到过这里的语法,但你的想法。

+0

谢谢,但在这种情况下,我需要在div上渲染viwport吗?怎么做? – Coder

+0

一个视口被设计为适合那个视口,因此可能不是放入div的最佳候选人。它没有renderTo属性。什么推动了将面板放在div中的需求,您是否可以重新考虑布局?如果没有,就像Varun提到的那样,你可以在面板里面使用'fit'布局,但是我不是100%,因为它不是一个Ext.container – dougajmcdonald

+0

好吧,我是现在将面板添加到视口。 vieport有边界布局。添加1个区域:北部的面板,并添加区域中心的fieldset(其中包含gridPanel)。但是,调整网格大小的问题仍然是一样的。任何建议? – Coder

0

使用锚定属性。例如:anchor: '-10',无论您希望使用此功能的组件如何。这将根据它的父母宽度自动调整组件的宽度。

因此,如果您formpanelwidth 100像素,任子组件具有anchor : '-10px'集,将有宽度widthOfParent - anchorWidth

您还可以设置布局fit。这会自动将所有子组件都扩展为父母的width