Just wanted to add some code for this answer, since I managed to discover a good solution to this using code from different places. :) (some was pasted, some edited; the final version of this isn't tested, but you should be able to get the idea from it!)
var postbackElement; // Global to store the control that initiated the postback
// Using JQuery here
$(document).ready(function()
{
Sys.WebForms.PageRequestManager.getInstance().add_beginRequest(beginRequest);
Sys.WebForms.PageRequestManager.getInstance().add_pageLoaded(pageLoaded);
});
function beginRequest(sender, args)
{
postbackElement = args.get_postBackElement();
// This method can be used to do animations in place of OnUpdating
if(postbackElement.id == "YourControlId")
{
// or something like: if(id == "<%= YourControl.ClientID %>")
// run your animation here
}
}
function pageLoaded(sender, args)
{
// This method can be used to do animations in place of OnUpdated
// Also, the args variable holds a list of panels that are being updated;
// I didn't use this though.
// This condition is true on the first page load
if (typeof(postbackElement) === "undefined")
{
return;
}
if(postbackElement.id == "YourControlId")
{
// run your animation here
}
}