我需要动态地向已经加载的页面添加一列。该列由在加载 .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(...)
)。任何建议将不胜感激。