加载部分视图时调用javascript

时间:2011-03-15 19:01:03

标签: javascript asp.net-mvc extjs

我有一个ASP.NET MVC应用程序。在应用程序中,我有一个页面上有一个按钮。当我点击按钮时,在窗口中呈现局部视图(见下文)。在视图中我有一个组合框,我需要在渲染视图后加载组合框。我尝试在win.show()之后调用js,但这不起作用,因为用于渲染组合的文本框位于局部视图中。我该什么时候打电话给js?任何有关这方面的帮助将非常感谢。谢谢!

var win;
if (!win) {
    win = new Ext.Window({
        layout: 'fit',
        width: 750,
        height: 630,
        closeAction: 'hide',
        plain: true,
        autoLoad: {
            url: '../SearchJob/SearchPanel'
        },
        buttons: [{
            text: 'Submit',
            handler: function () { }
        }, {
            text: 'Close Me',
            handler: function () {
                win.hide();
            }
        }]
    });
}
win.show(this);

}

3 个答案:

答案 0 :(得分:0)

您可以添加<脚本>标记到局部视图的末尾。这样,在完全呈现局部视图之前,不会解析/执行脚本。

答案 1 :(得分:0)

你能在Ext.Window上使用afterrender事件吗?

答案 2 :(得分:0)

由于您使用autoLoad加载部分视图内容,您必须等到窗口收到带有部分视图内容的响应并且已使用components / markup更新...因此您可以监听{ {1}}窗口更新程序的事件......

update

[编辑] 确保将事件处理程序设置为仅运行一次,但编辑高于

win.on('render', function(component) {
    win.getUpdater().on('update', function(el, response) {
            // Load Combo
    }, win, {single:true});
});