Я создал панель в комплекте с Ext.Template. Эта панель содержится в другой панели, которая начинает свою жизнь.Force Ext для создания элемента тела для скрытой (обваленной) панели
id: 'myPanel',
title: 'My Title',
layout: 'border',
collapsible: true,
collapsed: true,
hideCollapseTool:true,
bodyBorder: false,
height: 300,
bodyStyle: 'background:#F9F9F9;',
items: [{
id: 'myDisplayPanel',
bodyStyle: 'background:transparent;',
width: 300,
border: false,
margins: '5 5 5 5',
region: 'west',
tpl: new Ext.Template([
'some template'
])
},
{
id: 'myForm',
xtype: 'form',
bodyStyle: 'background:transparent;',
border: false,
margins: '5 5 5 5',
region: 'center',
[...]
Эта панель шаблона должна обновляться в результате выбора строки в соседней сетке. Но я получаю сообщение об ошибке при первом вызове .update (data); на myDisplayPanel, так как он не содержит элемента тела.
myGridSelectionModel: new Ext.grid.RowSelectionModel({
singleselect: true,
listeners: {
rowselect: function(sm,rowIdx,r) {
Ext.getCmp('myDisplayPanel').update(r.data);
Ext.getCmp('myPanel').expand(true);
}
}
}),
Вызов myDisplayPanel.update() вызывает ошибку, когда внешн пытается вызвать функцию template.overwrite с myDisplayPanel.body как первые пары.
function(b,a,c){b=Ext.getDom(b);b.innerHTML=this.applyTemplate(a);
Возможно ли каким-либо образом заставить Ext генерировать элемент тела для этой скрытой панели до того, как она будет показана? Я попытался развернуть элемент до его обновления, но теперь это действует ...
Да, я заметил эту настройку, но, к сожалению, она не сработала для меня по какой-то еще неизвестной причине.Я вообще отказался от рухнувшего подхода к этой панели, но я собираюсь принять ваш ответ, поскольку он теоретически должен решить эту проблему. –
Извините, это не сработало для вас. Если вы хотите копать дальше, я обычно отлаживаю подобные вещи, устанавливая точку останова на строке обновления в firebug, а затем используйте консоль/часы для просмотра Ext.getCmp ('myDisplayPanel'), проверяя свойства rendered и el для это и его собственная цепочка. Последний родитель, который был визуализирован, и/или верхний родитель, который еще не отображен, являются хорошими местами для начала отладки, чтобы понять, почему ожидаемый макет не произошел. Макеты могут оказаться сложными, особенно если они сложны и вложены. –