форма макета панели проблема в extjs2 - PullRequest
0 голосов
/ 03 октября 2011

Я новичок в макетах extjs.У меня есть панель формы с макетом по умолчанию. Я добавляю набор полей, который содержит сетку и две кнопки.Я делаю панель формы для div.

Div в 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 ]
   });

Я хочу изменить размер формы и сетки в соответствии с размером окна (изменение размера окна изменяет размерэлемент) Прямо сейчас Если попытаться изменить размер окна, размер поля будет изменен в соответствии с окном, а сетка - нет.

На данный момент я задал фиксированную высоту и ширину сетки.Как и без этой сетки, просто растяните ее горизонтально.

Я не хочу указывать ширину панели или сетки.Как это может быть достигнуто?Когда я искал, если мы отобразим панель в область просмотра, она позаботится об изменении размера.Если это так, то я должен создать область просмотра в extjs и повторить это для div?Если да, то как это сделать?

Редактировать: Или я должен использовать css с div?

Любые указатели приветствуются.Спасибо

Ответы [ 2 ]

0 голосов
/ 03 октября 2011

Использовать свойство привязки. Например: anchor: '-10' на любых компонентах, для которых вы хотите использовать эту функцию. Это автоматически отрегулирует ширину компонента в соответствии с шириной родительского элемента.

Так что, если ваш formpanel имеет width 100px, любой дочерний компонент с установленным anchor : '-10px' будет иметь ширину widthOfParent - anchorWidth

Вы также можете установить макет на fit. Это автоматически расширит все дочерние компоненты до width их родителей.

0 голосов
/ 03 октября 2011

Вы можете создать область просмотра, и это, как вы говорите, позаботится об изменении размера.

В окне просмотра вы можете добавить свою панель в коллекцию 'items'. Если вы хотите, чтобы панель соответствовала области просмотра, вы должны использовать макет «fit».

Что-то вроде этого было бы правильным типом идеи:

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

Я не проверял синтаксис здесь, но вы поняли.

...