sender._postBackSettings.panelID在非IE浏览器中返回null?

时间:2009-09-03 22:55:27

标签: asp.net javascript updatepanel

我在一个页面中有2个更新面板。请求后,我想检查哪些更新面板已更新。我读过sender._postBackSettings.panelID应该对此有好处:)

但是,每当我在非IE浏览器中获得回发时,panelID只返回null?它在IE中工作得非常好......

这是一个codesnippet:

Sys.WebForms.PageRequestManager.getInstance().add_endRequest(
   function(sender, args) {
   var postBackControls = sender._postBackSettings.panelID.split("|");
   ........
});

我有2个updatepanel,都有条件更新模式:

<asp:UpdatePanel ID="updScheduleTemplate" runat="server" 
   UpdateMode="Conditional">
   <ContentTemplate>
   .........

<asp:UpdatePanel ID="updSpecialDays" runat="server" 
   OnLoad="updSpecialDays_OnLoad" UpdateMode="Conditional">
   <ContentTemplate>
   ..........

任何帮助都将受到高度赞赏,我愿意接受不涉及sender._postBackSettings.panelID的替代解决方案

提前致谢:)

1 个答案:

答案 0 :(得分:4)

尝试 add_pageLoaded

Sys.WebForms.PageRequestManager.getInstance().add_pageLoaded(pageLoaded);

function pageLoaded(sender, args)
{
    var panels = args.get_panelsUpdated();

    if (panels.length > 0)
    {    
        for (i=0; i < panels.length; i++) {
            var panelID =panels[i];
        }          
    }
}

我知道这听起来不会起作用但是根据MSDN的以下文章,有充分的理由相信它也会捕获updatepanel完成事件。 http://msdn.microsoft.com/en-us/magazine/cc163413.aspx

_postBackSettings是私有的,可能不适合外部使用。