使用Sys WebForms PageRequestManager进行异步交互

时间:2009-05-18 11:56:48

标签: asp.net javascript asynchronous webforms pagerequestmanager

我正在尝试在进行异步调用时向用户显示一个面板,但仅在特定调用发生时才显示。

使用正常的“get control”脚本我喜欢:

function pageLoad() {

    try {
        var manager = Sys.WebForms.PageRequestManager.getInstance();
        manager.add_endRequest(OnEndRequest);
        manager.add_beginRequest(OnBeginRequest);
    }
    catch (err) { }
}

function OnBeginRequest(sender, args) {
    //alert('Start\n\n' + sender + '\n\n' + args);
    var p = document.getElementById('ajaxLoadingPanel');
    p.style.visibility = 'visible';
    p.style.display = 'inline';
}

function OnEndRequest(sender, args) {
    //alert('End\n\n' + sender + '\n\n' + args); 
    var p = document.getElementById('ajaxLoadingPanel');
    p.style.visibility = 'hidden';
    p.style.display = 'none';
}  

但我的问题是我如何知道发件人和args的方法?

我去了through the MSDN并且他们没有谈论我们可以使用的方法,VS2008中没有关于这部分的智慧......

任何想法?我想得到一个发件人和args的方法和属性列表,我可以使用这个javascript API。

3 个答案:

答案 0 :(得分:1)

此文档很有帮助: http://msdn.microsoft.com/en-us/library/bb398976.aspx

它有一个关于PageRequestManager上所有事件的表以及它们的事件参数。然后事件args记录它们的属性等。发送方始终是PageRequestManager。

答案 1 :(得分:0)

在ScriptDebugger中调试并找出sender和args的内容 你可以确定哪个控件导致了回发

答案 2 :(得分:0)

要知道哪个元素导致了回发,您可以使用args.get_postBackElement().id