我需要动态地将列添加到已加载的页面。该列由加载.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(...)
)。
任何建议都将不胜感激。
答案 0 :(得分:0)
回答了我的问题 - 这段代码解决了这个问题:
var contentPanel = Ext.getCmp('totalOperation');
contentPanel.autoLoad = {
url: 'URL path of controller method'
};
contentPanel.doAutoLoad();