2015-12-21 2 views
1

Я Тринг dynamicaly установить высоту окна:ExtJs установить высоту окна

component.remove(Ext.getCmp("comboBoxTypeOfSchool", true)); 
component.remove(Ext.getCmp("comboBoxProgram", true)); 
Ext.getCmp("winDecisionEditor").setHeight(190); 

Но, в браузере я вижу, что он устанавливает высоту до «winDecisionEditor тела», а не «winDecisionEditor». Как установить высоту на «winDecisionEditor» ?. Заранее спасибо!

Вот мой decaration окна:

Ext.define('MyApp.view.decisionWindow', { 
extend: 'Ext.window.Window', 

requires: [ 
    'Ext.form.Panel', 
    'Ext.form.field.Date', 
    'Ext.form.field.ComboBox', 
    'Ext.form.field.Display', 
    'Ext.button.Button', 
    'Ext.form.FieldSet' 
], 

height: '', 
id: 'winDecisionEditor', 
margin: '', 
width: 707, 
layout: 'fit', 
title: 'Create decision', 
modal: true, 

//Other stuff 
}); 

UPDATE: скрипка для выпуска

https://fiddle.sencha.com/#fiddle/12rh

+0

Это в значительной степени зависит от компоновки вы выбрали, так что ваш код является неполным. Как вы определили winDecisionEditor? – Alexander

+0

@ Александр, я отредактировал мой вопрос, но здесь я не установил высоту во время создания, и моя проблема исчезла. Благодарю за ваш ответ. – Makko

+0

Внутренний элемент контейнера с маской 'fit' должен изменяться каждый раз, когда размер контейнера изменяется, как можно видеть здесь: https://fiddle.sencha.com/#fiddle/12rc Я не знаю, что вы пытаетесь, но установка высоты элемента не является вашей проблемой. – Alexander

ответ

0

Я думаю, что проблема заключается в макете. Подгонка макета не является лучшим выбором для вашей страницы, поскольку она соответствует внутренней панели контейнера (а не наоборот).

Я думаю, что если вы хотите растянуть окно во внутренние элементы (и, таким образом, измените размер области «предметы» на желаемый, то есть в вашем примере 190), вы должны использовать другой макет. например, например, я использую layout:{type:'vbox', align:'stretch'}.

Здесь я изменить оригинальную скрипку:

https://fiddle.sencha.com/#fiddle/12ri

UPDATE:

Пожалуйста, обратите внимание на очень важный ответ Mitchell Simoens, что

Fit макет, но не сделал объясните это правильно. Подгонка макета принимает первый дочерний компонент (только один) и соответствует размеру контейнера (окно в этом случае).

Это означает, что первый combobox будет иметь размер окна, а не покажет другие предметы. Подгонка макета будет определять размер контейнера его дочернему компоненту.

https://fiddle.sencha.com/#fiddle/12rs

Обратите внимание, где размеры (или отсутствие размеров и Autosizing бывает)

+1

В вашей скрипке не используется макет vbox. Кроме того, вы были правы в отношении макета, но не объяснили это должным образом. Fit layout принимает первый дочерний компонент (только ONE) и соответствует размеру контейнера (в этом случае окно). Это означает, что первый combobox будет иметь размер окна и вообще не будет отображать другие элементы. Пригонка макета будет определять размер контейнера для его дочернего компонента: https://fiddle.sencha.com/#fiddle/12rs Обратите внимание, где размеры (или отсутствие размеров и автоматизация происходит) –

+0

@MitchellSimoens Извините, я забыл сохранить свою скрипку , Я обновил свою скрипку. Я собираюсь добавить ваш подробный ответ в мою. Я знаю, что ты как бог: D – Marco