Я создал панель в комплекте с Ext.Template.Эта панель содержится в другой панели, которая начинает свою жизнь свернутой.
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, поскольку он не содержит элемента body.
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 () вызывает ошибку, когда Ext пытается вызвать функцию template.overwrite с myDisplayPanel.body в качестве первого параметра.
function(b,a,c){b=Ext.getDom(b);b.innerHTML=this.applyTemplate(a);
Возможно ли каким-либо образом заставить Ext сгенерировать элемент тела для этой скрытой панели до того, как она будет показана?Я пытался развернуть элемент до его обновления, но теперь это имеет эффект ...