すでに読み込まれているページに列を動的に追加する必要があります。列は、.ascxページがロードされた後に(ユーザーの操作によって)作成されるオブジェクトによって表されます。JavaScript側では、TabPanelを備えたパネルがあります。
var reportPanel = new Ext.Panel({
layout: 'fit',
items: [
new Ext.TabPanel({
id: 'reportTabs',
renderTo: 'reportTabContainer',
activeTab: 0,
autoHeight: true,
minHeight: 600,
plain: true,
stateful: true,
deferredRender: false,//allows both reports to run at once
defaults:
{
autoHeight: true
},
items: tabsConfig
})
]
});
};
tabsConfigのアイテムは次のようになります。
{{ id: 'totalOperation', title: 'Total Operation', autoLoad: {{url: '" +Url.Action("Detail","OverallReport") +"', params: 'null', scripts: true, timeout: '9000000', method: 'POST'}}
私の問題は、列オブジェクトが作成されたら、特定のAJAX呼び出しの後にascxページ(別名extJSpanel)を再レンダリングする必要があることです。panel.removeAll(true)
同様に試しましpanel.doLayout(false,true)
たが、パネル内の要素が削除されたり、ページが更新されたりすることはありません。
要するに、コントローラーへのAJAX呼び出しの前に.ascxページを破棄し、AJAX呼び出しの戻りにascxコントロールを再入力させる必要があります(を使用してreturn PartialView(...)
)。任意の提案をいただければ幸いです。