Assign dynamic tpl を grid のコンボに割り当てるという質問がありましたが、解決しましたが、正しい tpl を確認するには、最初にコンボからフォーカスを外してから、再度フォーカスをコンボに設定する必要があります。このプロセスに従うと、正しいリストのみが表示され、それ以外の場合は以前の tpl が表示されます。ombo_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>
2番目のアラートボックスには、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>
アラートの [OK] ボタンをクリックするとフォーカスがコンボから [OK] ボタンに変わり、コンボを展開すると正しい tpl が表示されます。
実際、私は何を尋ねるべきか混乱しているので、プロセス全体を書きました。セッションを使用する場合、tpl に変数を使用する代わりに、同じことが起こります。ストアの列を読み込もうとすると、同じことが起こります。それはEXT JSの欠点ですか、それとも何か他のものですか?誰か助けてください...