2017-09-06 65 views
0

我有我的两个页面上不同的UpdatePanel和他们每个人都由被放置在不同的中继不同的按钮触发,updapenels正常工作,从冲突避免我已经设置好的他们UpdateMode =“Conditional”但我无法确定触发的updapanel的id为被触发的UpdatePanel的ID只

InitializeRequestEndRequest事件,我需要确定哪些updatepanel触发,然后我可以做这个updapanel指定一些客户端的动画。

Thanx。

回答

0

因此,所有的研究后,最好的做法看起来像这样:

使用Sys.WebForms.PageRequestManager.getInstance().add_endRequest(EndRequest)Sys.WebForms.PageRequestManager.getInstance().add_beginRequest(InitializeRequest)

我将自己所有的触发像

<asp:LinkButton Text="Detay" data-sid="PickAppToShow" CssClass="btn btn-default btn-sm" ID="lbtSelectApplication" runat="server" /></td> 

,并在请求处理的数据属性看like that

function InitializeRequest(sender, args) { 
    try { 
     var consernedObject = getAjaxObjectFromSender(sender); 
     consernedObject.Start(); 

    } 
    catch (e) { 
     fn_ErrorLog(e); 
    } 
    }; 

function EndRequest(sender, args) { 
    try { 
     var consernedObject = getAjaxObjectFromSender(sender); 
     consernedObject.End(); 

    } 
    catch (e) { 
     fn_ErrorLog(e); 
    } 


}; 

helper方法是这样的:

function getAjaxObjectFromSender(sender) { 
    var poster = sender._activeElement; 
    if (poster == null) { 
     return DefaultObject; 
    } 
    var posterSid = poster.getAttribute('data-sid'); 
    if (posterSid == null) { 
     return DefaultObject; 
    } 
    var consernedObject = window[posterSid]; 
    if (consernedObject == null) { 
     return DefaultObject; 
    } 
    return consernedObject; 
} 

诀窍是从现在开始,你就上述window[posterSid]看到给你定名为JS对象。如果你检查我的RequestHandlers;他们正在使用consernedObject.Start();consernedObject.End();两种方法,这两种方法在另一个名为AjaxObjects的js文件中预定义。

例如:

var DefaultObject = { 
    Start: function() { 
     //When Progress Start  
     App.blockElement($(window), "Pleae wait"); 
    }, 
    End: function() { 
     //When Progress End 
     App.unblockElement($(window)); 
    } 
}; 

var PickAppToShow = { 
    Start: function() { 
     //When Progress Start  
     App.blockElement($("#app-detail-content"), "Asking To Server"); 
    }, 
    End: function() { 
     //When Progress End 
     App.unblockElement($("#app-detail-content")); 
    } 
}; 


var PickMemberToDetail = { 
    Start: function() { 
     //When Progress Start  
     App.blockElement($(window), "Wait For It"); 
    }, 
    End: function() { 
     //When Progress End 
     $("#modal-MembershipDetail").modal("show"); 
     App.unblockElement($(window)); 
    } 
}; 

这种方法解决了我所有的问题,但我需要从服务器端的参数,可以通过使用hiddenField来achived之一。

相关问题