2011-10-03 53 views
1
 <asp:UpdatePanel runat="server" ID="Holder" OnLoad="" UpdateMode="Always" ChildrenAsTriggers="True"> 
       <ContentTemplate> 
... 
        <asp:Timer ID="Timer1" runat="server" Interval="3000" OnTick="Timer_Tick" /> 
      </ContentTemplate> 
     </asp:UpdatePanel> 

JS:如何调用在更新面板FN偏回发一个JavaScript在asp.net

window.onload = function() { 
      r.init(); 
     }; 
当页面加载r.init

()[绘制图表]被执行。但是当页面发生部分回发时,图形不会再被绘制。如何火JS时更新面板ISFINITE更新

+0

不知道有关ASP,但在JSF你WOU ld只需挂钩到ajax生命周期,并在响应部分提交时注册一个回调。 – Lucas

回答

2

你会想这些事件上载面板将前和部分回发后调用响应。

Sys.WebForms.PageRequestManager.getInstance().add_beginRequest(...); 
Sys.WebForms.PageRequestManager.getInstance().add_endRequest(...); 
+0

如何在代码中插入此代码,我应该在更新面板加载时调用方法 – Mano

+0

您需要在调用部分回发之前随时设置这些事件。在过去,我添加了调用来连接这些处理程序的按钮单击,这是调用部分回发。你也可以将它添加到你的document.load代码中。 – asawyer

1

复制的:Asp.net page life cycle error,

您的网站有一个asp:ScriptManager。该控件与Javascript中的PageRequestManager对象进行通信。你可以用你的代码钩入更新面板的所有通信。

  • 的BeginRequest
  • endRequest
  • initializeRequest
  • pageLoaded
  • pageLoading

我觉得pageLoaded是最适合你的方法。

<script type="text/javascript"> 
window.onload = function() { 
    // PageLoad for sync only 
    r.init(); 
}; 

Sys.WebForms.PageRequestManager.getInstance().add_pageLoaded(function(sender, args) { 
    // PageLoad for sync and async! 
    r.init(); 
}); 
</script> 

您可以扩展代码以检查哪个控件导致该帖子以优化您的代码。

MSDN:

<head runat="server"> 
    <script type="text/javascript" > 
      function pageLoad() { 
       alert('this executes after each partial post back'); 
       r.init(); 
      } 
     </script> 
</head> 

使用ScriptManager识别页面加载的功能和各部分后回

源之后就说:Sys.WebForms.PageRequestManager我发现了添加此javascript头标记