使用extjs重新呈现.ascx页面

时间:2012-12-18 18:28:43

标签: javascript asp.net-mvc-3 extjs

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

1 个答案:

答案 0 :(得分:0)

回答了我的问题 - 这段代码解决了这个问题:

var contentPanel = Ext.getCmp('totalOperation');
contentPanel.autoLoad = {
    url: 'URL path of controller method'
};
contentPanel.doAutoLoad();