|
|
@@ -8,11 +8,11 @@
|
|
|
//
|
|
|
|
|
|
//notes: view state only tracks changes after OnInit method is executed for the page request. You can read from it at any time, but cant write to it during rendering.
|
|
|
-//more notes: look at the private on* methods for initialization order. they will help.
|
|
|
//even more notes: view state info in trackviewstate method description. read later.
|
|
|
//Ok, enough notes: what the heck is different between enable view state, and track view state.
|
|
|
//Well, maybe not. How does the ViewState know when to track changes? Does it look at the property
|
|
|
//on the owning control, or does it have a method/property of its own that gets called?
|
|
|
+// I think this last question is solved in the Interface for it. Look into this.
|
|
|
|
|
|
//cycle:
|
|
|
//init is called when control is first created.
|
|
|
@@ -23,11 +23,54 @@
|
|
|
//raisepostbackevent if ipostbackeventhandler is implemented.
|
|
|
//prerender is called when the server is about to render its page object
|
|
|
//SaveViewState is called.
|
|
|
-//Dispose disposed/unload not sure but is last.
|
|
|
+//Unload then dispose it apears. :)
|
|
|
|
|
|
//Naming Container MUST have some methods. What are they? No clue. Help?
|
|
|
|
|
|
//read this later. http://gotdotnet.com/quickstart/aspplus/
|
|
|
+//This to: http://msdn.microsoft.com/library/default.asp?url=/library/en-us/cpguidnf/html/cpconattributesdesign-timesupport.asp
|
|
|
+//http://msdn.microsoft.com/library/default.asp?url=/library/en-us/cpguidnf/html/cpcontracefunctionality.asp
|
|
|
+
|
|
|
+// Isnt life grand? :)
|
|
|
+// See the undocumented methods? Gota love um. ;)
|
|
|
+// ASP.test4_aspx.Page_Load(Object Sender, EventArgs e) in \\genfs2\www24\bobsmith11\test4.aspx:6
|
|
|
+// System.Web.UI.Control.OnLoad(EventArgs e) +67
|
|
|
+// System.Web.UI.Control.LoadRecursive() +73
|
|
|
+// System.Web.UI.Page.ProcessRequestMain() +394
|
|
|
+
|
|
|
+// ASP.test4_aspx.Page_Unload(Object Sender, EventArgs e) in \\genfs2\www24\bobsmith11\test4.aspx:6
|
|
|
+// System.EventHandler.Invoke(Object sender, EventArgs e) +0
|
|
|
+// System.Web.UI.Control.OnUnload(EventArgs e) +67
|
|
|
+// System.Web.UI.Control.UnloadRecursive(Boolean dispose) +78
|
|
|
+// System.Web.UI.Page.ProcessRequest() +194
|
|
|
+// System.Web.UI.Page.ProcessRequest(HttpContext context) +18
|
|
|
+// System.Web.CallHandlerExecutionStep.Execute() +179
|
|
|
+// System.Web.HttpApplication.ExecuteStep(IExecutionStep step, Boolean& completedSynchronously) +87
|
|
|
+
|
|
|
+
|
|
|
+// ASP.test4_aspx.Page_Unload(Object Sender, EventArgs e) in \\genfs2\www24\bobsmith11\test4.aspx:6
|
|
|
+// System.Web.UI.Control.OnUnload(EventArgs e) +67
|
|
|
+// System.Web.UI.Control.UnloadRecursive(Boolean dispose) +78
|
|
|
+// System.Web.UI.Page.ProcessRequest()
|
|
|
+
|
|
|
+// ASP.test4_aspx.Page_Kill(Object Sender, EventArgs e) in \\genfs2\www24\bobsmith11\test4.aspx:6
|
|
|
+// System.Web.UI.Control.OnPreRender(EventArgs e) +67
|
|
|
+// System.Web.UI.Control.PreRenderRecursiveInternal() +61
|
|
|
+// System.Web.UI.Page.ProcessRequestMain() +753
|
|
|
+
|
|
|
+// ASP.test4_aspx.OnInit(EventArgs e) in \\genfs2\www24\bobsmith11\test4.aspx:6
|
|
|
+// System.Web.UI.Control.InitRecursive(Control namingContainer) +202
|
|
|
+// System.Web.UI.Page.ProcessRequestMain() +120
|
|
|
+
|
|
|
+// ASP.test4_aspx.SaveViewState() in \\genfs2\www24\bobsmith11\test4.aspx:12
|
|
|
+// System.Web.UI.Control.SaveViewStateRecursive() +51
|
|
|
+// System.Web.UI.Page.SavePageViewState() +174
|
|
|
+// System.Web.UI.Page.ProcessRequestMain() +861
|
|
|
+
|
|
|
+// ASP.test_aspx.LoadViewState(Object t) +28
|
|
|
+// System.Web.UI.Control.LoadViewStateRecursive(Object savedState) +125
|
|
|
+// System.Web.UI.Page.LoadPageViewState() +182
|
|
|
+// System.Web.UI.Page.ProcessRequestMain() +256
|
|
|
|
|
|
using System;
|
|
|
using System.Web;
|
|
|
@@ -460,5 +503,36 @@ namespace System.Web.UI
|
|
|
{
|
|
|
_renderMethodDelegate = renderMethod;
|
|
|
}
|
|
|
+ protected void LoadRecursive()
|
|
|
+ {
|
|
|
+ OnLoad(EventArgs.Empty);
|
|
|
+ if (_controls != null) foreach (Control c in _controls) c.LoadRecursive();
|
|
|
+ }
|
|
|
+ protected void UnloadRecursive(Boolean dispose)
|
|
|
+ {
|
|
|
+ OnUnload(EventArgs.Empty);
|
|
|
+ if (_controls != null) foreach (Control c in _controls) c.UnloadRecursive();
|
|
|
+ if (dispose) Dispose();
|
|
|
+ }
|
|
|
+ protected void PreRenderRecursiveInternal()
|
|
|
+ {
|
|
|
+ OnPreRender(EventArgs.Empty);
|
|
|
+ if (_controls != null) foreach (Control c in _controls) c.PreRenderRecursiveInternal();
|
|
|
+ }
|
|
|
+ protected void InitRecursive(Control namingContainer)
|
|
|
+ {
|
|
|
+ if (_controls != null) foreach (Control c in _controls) c.InitRecursive(namingContainer);
|
|
|
+ OnInit(EventArgs.Empty);
|
|
|
+ }
|
|
|
+ protected object SaveViewStateRecursive()
|
|
|
+ {
|
|
|
+ //TODO
|
|
|
+ }
|
|
|
+ protected void LoadViewStateRecursive(Object savedState)
|
|
|
+ {
|
|
|
+ //TODO
|
|
|
+ }
|
|
|
+ //TODO: I think there are some needed Interface implementations to do here.
|
|
|
+ //TODO: Find api for INamingContainer.
|
|
|
}
|
|
|
}
|