2009-09-03 22 views
2

我在一個頁面中有2個更新面板。請求後,我想檢查哪個更新面板更新。我已閱讀sender._postBackSettings.panelID應該對此有好處:)sender._postBackSettings.panelID在非IE瀏覽器中返回null?

但是,每當我在非IE瀏覽器中獲得回傳時,panelID只會返回空值?它工作在IE很細......

這裏有一個codesnippet:

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

我得到了2個UpdatePanel的,既帶有條件updatemodes:

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

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

任何幫助將受到高度讚賞,並且我可以選擇不涉及的替代解決方案

感謝提前:)

+0

這很奇怪。你有沒有試過用Firebug進行調試? – jrummell 2009-09-04 00:28:56

+0

是的,show's null :( – cwap 2009-09-04 06:50:52

回答

3

嘗試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]; 
     }   
    } 
} 

我知道這聽起來像它wouldnt工作,但根據從MSDN下面的文章有充分的理由相信,它也會捕獲更新面板完成事件。 http://msdn.microsoft.com/en-us/magazine/cc163413.aspx

_postBackSettings是私人的,可能不適合外部使用。

相關問題