2009-11-11 7 views
5

Я создал Ext.Window с некоторыми полями Ext.form внутри. Но когда я изменяю размеры элементов формы окна, все еще имеют начальную ширину и высоту.ExtJS: Автоматическое изменение размеров полей формы при изменении размера окна

Требуется ли явное изменение размеров полей формы при изменении размера окна? Или есть какой-то параметр, который позволяет автоматически изменять размер полей формы?

Пример кода:

var f_1 = new Ext.form.TextField({fieldLabel: 'Label 1'}); 
var f_2 = new Ext.form.TextField({fieldLabel: 'Label 2'}); 
var fp = new Ext.form.FormPanel({items: [f_1, f_2]}); 

var w = new Ext.Window({ 
    layout: 'form', 
    title: 'test', 
    items: fp 
}); 

w.show() 

ответ

4

Вы можете проверить крепление, что делает красиво изменять размеры формы:

http://www.extjs.com/deploy/dev/examples/form/anchoring.html

См свойство «якорь» на «Component»:

http://www.extjs.com/deploy/dev/docs/?class=Ext.Component

+0

Спасибо, этот метод действительно работает. По крайней мере на данный момент :) –

1
var f_1 = new Ext.form.TextField({fieldLabel: 'Label 1', anchor:'95%'}); 

бы это сделать. вы можете увидеть некоторые образцы there и документацию there.

Кроме того, если вы не хотите, чтобы указать размер для каждого из них вы можете нажать по умолчанию из формы панели с объектом defaults конфигурации

var fp = new Ext.form.FormPanel({ 
      items: [f_1, f_2] 
      ,defaults: { 
       anchor: '95%' 
      } 
     }); 
+0

Удивительно! Спасибо –

+0

@Sergei: добро пожаловать. – RageZ

+0

Но это не работает с Ext.form.ComboBox –

0

Мое подозрение, что FormPanel «FP» частично в вине.

В Ext JS обычно лучше всего объявить все из окна на всем протяжении внутри конструктора Ext.Window. Создание вещей и попытка приложить их позже стали источником большого разочарования для меня.

(Хорошо, другой ответ о ширине: 100%, скорее всего, лучше. Но все-таки у меня было много проблем с изменением размера и т. Д., Когда не объявляли все сразу ... точно не выяснили ., когда это нормально сделать это пока)

+0

@richard: У меня нет проблем с этим ... поэтому я не совсем понимаю, о чем вы говорите ... – RageZ

+0

@RageZ: Похоже, ваша проблема решена в этом случае, но я оставил свой ответ, потому что я «Во время Ext JS я много раз видел неудобство раскладки, когда я создал элемент управления и ссылался на него в элементах родительского макета, вместо того, чтобы объявлять его там. Не правильный ответ для вас, но может быть для кого-то другого, который сталкивается с этим вопросом с аналогичной проблемой, не связанной с привязкой/шириной. – richardtallent

Смежные вопросы