How to check whether UpdatePanel is posting back?
You can check whether the postback was asynchronous and whether it was issued by an update panel looking at these properties:
ScriptManager.GetCurrent(Page).IsInAsyncPostbackScriptManager.GetCurrent(Page).AsyncPostbackSourceElementID
I don't know if this will work any better than your solution, but have you tried?:
if (ScriptManager.GetCurrent(Page).IsInAsyncPostBack){ Control ctrl = GetControlThatCausedPostBack(Page); if (ctrl is UpdatePanel) { //handle updatepanel postback }}private Control GetControlThatCausedPostBack(Page page){ //initialize a control and set it to null Control ctrl = null; //get the event target name and find the control string ctrlName = Page.Request.Params.Get("__EVENTTARGET"); if (!String.IsNullOrEmpty(ctrlName)) ctrl = page.FindControl(ctrlName); //return the control to the calling method return ctrl;}
Try out following:
var controlName = Page.Request.Params.Get("__EVENTTARGET");if (!String.IsNullOrEmpty(controlName)){ // Use FindControl(controlName) to see whether // control is of UpdatePanel type}
Helpful links: