Can I set some kind of global variable for the length of a single Request, so that all the controls of the page can respond to it without having to pass it through to each o
Yes, you can. Look at the obvious place: the HttpContext and the HttpContext.Current.Items
collection that is always accessible during request handling (see http://msdn.microsoft.com/en-us/library/system.web.httpcontext.items.aspx).
Just as an hint:
public static class RequestScopedData
{
private const string key = "key_that_you_choose";
public static bool IsSaving
{
get
{
object o = HttpContext.Current.Items[key];
return Convert.ToBoolean(o);
}
set
{
HttpContext.Current.Items[key] = value;
}
}
}