ExtJS 3.2: скрыть центральную панель в макете "границы" - PullRequest
0 голосов
/ 14 марта 2012

enter image description here

Привет!В моем проекте у меня есть окно, структура которого описана на картинке.По некоторым причинам, унаследованным от предыдущих версий проекта, мне нужно создать функцию, которая будет скрывать части окна (панели).Если я скрываю панель C2 - все хорошо, работает точно так, как я хотел, но если я скрываю панель C1, которая имеет регион: «центр», другая панель не занимает область C1.Это похоже на ошибку.

Я знаю, что делаю что-то не так, но мне все еще нужен какой-то взлом, чтобы скрыть центральные панели.

Я пытался переназначить регион:центр "к другой панели, но это не сработало.

контрольный пример

Ответы [ 2 ]

1 голос
/ 15 марта 2012

ExtJS не позволяет удалить центральную панель макета границы.Однако вы можете добавлять и удалять элементы из центральной панели.

0 голосов
/ 15 марта 2012

Проблема с вашим кодом заключается в том, что вы указываете фиксированную ширину для панели c2:

var c1 = new Ext.Panel({
    region: "center",
});                

var c2 = new Ext.Panel({
    region: "east",
    width: 400,
    split: true
});

И это делает вашу панель c1 потерянной при скрытии из-за ее свойства region.

Когда вы работаете с регионом, вы обычно не устанавливаете фиксированную ширину.Это решит вашу проблему:

var c1 = new Ext.Panel({
    region: "center",
});                

var c2 = new Ext.Panel({
    region: "east",
    width: "100%",
    split: true
});

Теперь вы можете попробовать либо c1.hide();, либо c2.hide(), и компоненты будут работать так, как ожидалось.

...