タブ内にフォームがあります。これは 2 番目のタブなので、開くまでレンダリングされません。
フォームにデータを送信しようとしましたExt.getCmp('DetailsForm').getForm().setValues(selections[0]);
が、関数ではないと表示されます。おそらく、まだレンダリングされていないためです。私がしなければならないこと?
Ext.tab.PanelのdeferredRender設定プロパティをdeferredRender: false
これにより、アクティブなタブだけでなく、すべてのタブのレンダリングが強制されます。これでフォームが表示されます。前に述べたように、myTabPanelRef.down('from').getForm().setValues(selections[0]); も使用することをお勧めします。フォームにアクセスします。
フォーム パネルのレンダリングイベントを使用します。あなたのコードは次のようになります -
Ext.getCmp('DetailsForm').on('render', function(){
this.getForm().load(selections[0]);
});
2番目のタブshow
イベントまたはpainted
イベントにサブスクライブしてから、 DOM全体では表示されない
ため、できればメソッドを使用してフォームを探します。.down()
値を設定する