2015-03-11 3 views
0
var len = panel.items.items.length; 
if(len < 15){ 
panel.add(this.childPanel); 
panel.doLayout(); 
} 

// элементы внутри панели остается неизменным даже после выполнения doLayout()удалось добавить панель в другую панель, которая уже имеет панели в качестве его элемента в ExtJS 3

+0

Можете ли вы отредактировать фрагмент кода и указать, как определяется ваш childPanel. Также вы добавляете панель только когда количество дочерних элементов на панели меньше, чем 15, и как добавляются эти другие дочерние элементы? Больше кода, пожалуйста! – mindparse

+0

спасибо @mindparse. Проблема заключалась в том, как создавался этот. ChildPanel. Я создавал this.childPanel рекурсивно. Поскольку у всех этих дочерних элементов был одинаковый идентификатор, он не добавлялся в панель. Я сделал идентификатор динамическим, и проблема была решена :) – salsa111

ответ

0

Проблема была с созданием childPanel. При создании дочерней панели я сделал поле id динамика childPanel, указав ему индекс.

ChildPanel.superclass.constructor.call(this, { 
    id : 'panel'+this.index, 
    items : [] 
}); 

Таким образом, каждый созданный childPanel будет иметь разные идентификаторы.

var len = panel.items.items.length; 
if(len < 15){ 
panel.add(this.childPanel); 
panel.doLayout(); 
} 

этот код работал отлично после этого!

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