1

我有一个问题,将动态 tpl 分配给网格中的组合,我解决了它,但我要看到正确的 tpl,我必须先将焦点从组合中取出,然后再将焦点设置为组合。如果我遵循这个过程然后只有我可以看到正确的列表,否则会显示以前的 tpl。我在combo_focus 事件中的代码是

..//
    var tmp = Ext.create('Ext.XTemplate', tplDataid);
    combo.setListTpl(tmp);
    combo.expand();
//..

如果我将代码替换为

 ..//
    alert('Beftore tmp:' + tplDataid);
    var tmp = Ext.create('Ext.XTemplate', tplDataid);
    alert('After tmp:' + tplDataid);
    combo.setListTpl(tmp);
    combo.expand();
//..

第一个警报框将 tpl 显示为

Beftore tmp:<br><tpl><table width=400><tr style="text-align: left;">
<th width=100> COL_PK_ID </th><th width=100> Data_ID </th><th width=100> 
Col1 </th><th width=100> col2 </th></tr></table></tpl><tpl for=".">
<div class="x-boundlist-item"><table width=400><tr><td width=100> {COL_PK_ID} 
</td><td width=100> {Data_ID} </td><td width=100> {Col1} </td><td width=100> 
{col2} </td></tr></table></div></tpl>

第二个警报框将 tpl 显示为

After tmp:<br><tpl><table width=200><tr style="text-align: left;"><th width=100>
COL_PK_ID </th><th width=100> Data_ID </th></tr></table></tpl><tpl for=".">
<div class="x-boundlist-item"><table width=200><tr><td width=100> {COL_PK_ID} 
</td><td width=100> {Data_ID} </td></tr></table></div></tpl>

当我们单击警报焦点的确定按钮从组合变为确定按钮时,当我们展开组合时,会显示正确的 tpl。

实际上我很困惑要问什么,所以我写了整个过程。如果我使用会话,而不是为 tpl 使用变量,同样的事情会发生。如果我尝试阅读商店的列,也会发生同样的事情。是 EXT JS 的缺点还是别的什么?有人请帮我...

4

0 回答 0