定位更新面板回发

时间:2009-08-24 12:44:36

标签: c# asp.net

我想知道是否有办法确定更新面板中何时发生回发。寻找类似于(IsPostBack)的东西。

我正在使用ASP.NET,使用C#。

4 个答案:

答案 0 :(得分:1)

使用ScriptManager.IsInAsyncPostBack

if (ScriptManager.GetCurrent(this).IsInAsyncPostBack)
{
    // In a request from an update panel
}
else {
    // Not in a request from an update panel
}

答案 1 :(得分:0)

尝试IsCallBack - 应该这样做。

答案 2 :(得分:0)

您是否正在寻找在服务器端或客户端确定此方法的方法?我认为有一个服务器端UpdatePanel加载事件可以覆盖。客户端可以按照以下说明完成 - http://forums.asp.net/t/1254188.aspx

答案 3 :(得分:0)

如果页面中发生任何更新,您可以找到导致回发的更新面板 这可以通过javascript

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

function PageLoadedHandler(sender, args)
{
    //this event is raised after all content on the page is refreshed.
    //Whether it was refreshed bacause of a synchronous or asynchronous
    if (TargetPanelWasUpdated(args.get_panelsUpdated(), "UpdatePanel1") )
    {
        //do stuff
    }
}

function TargetPanelWasUpdated(panelsUpdated, targetPanelID) 
{
     // NOTE: Multiple UpdatePanels will be included in the list unless  
     // you set each panel's UpdateMode property to Conditional.
     var matched = false; 
     for (i = 0 ; i < panelsUpdated.length; i++) {   
         if (panelsUpdated[i].id == targetPanelID) {
             matched = true;
             break;
     }                       
 }    
 return matched;    
}