我创建了一个与 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 上,因为它不包含正文元素。
myGridSelectionModel: new Ext.grid.RowSelectionModel({
singleselect: true,
listeners: {
rowselect: function(sm,rowIdx,r) {
Ext.getCmp('myDisplayPanel').update(r.data);
Ext.getCmp('myPanel').expand(true);
}
}
}),
当 Ext 尝试以 myDisplayPanel.body 作为第一个参数调用 template.overwrite 函数时,对 myDisplayPanel.update() 的调用会导致错误。
function(b,a,c){b=Ext.getDom(b);b.innerHTML=this.applyTemplate(a);
是否有可能以某种方式强制 Ext 在显示此隐藏面板之前为其生成一个正文元素?我试图在更新之前扩展元素,但这现在已经生效......