编程语言
首页 > 编程语言> > asp.net-sender._postBackSettings.panelID在非IE浏览器中返回null?

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

作者:互联网

我在一页中有2个更新面板.请求后,我想检查哪个更新面板已更新.我读过sender._postBackSettings.panelID应该适合这个:)

但是,每当我在非IE浏览器中收到回发信息时,panelID只会返回null吗?在IE中效果很好…

这是一个代码片段:

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

我有2个updatepanels,都具有条件​​updatemode:

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

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

任何帮助将不胜感激,我愿意接受不涉及sender._postBackSettings.panelID的替代解决方案

提前致谢 :)

解决方法:

请尝试使用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是私有的,可能不打算供外部使用.

标签:updatepanel,asp-net,javascript
来源: https://codeday.me/bug/20191107/2002962.html