1 using system;
2 using System.Collections.Generic;
3 using System.ComponentModel;
4 using System.Linq;
5 using System.Text;
6 using System.Web;
7 using System.Web.UI;
8 using System.Web.UI.WebControls;
9 using System.Collections.Specialized;
10
11 namespace ControlLibrary
12 {
13 [DefaultProperty("Text")]
14 [ToolboxData("<{0}:ControlLifecycle runat=server></{0}:ControlLifecycle>")]
15 public class ControlLifecycle : WebControl,IPostBackDataHandler,IPostBackEventHandler
16 {
17 protected override void OnInit(EventArgs e)
18 {
19 //输出
20 output("1.OnInit");
21 base.OnInit(e);
22 //注册
23 this.Page.RegisterRequiresPostBack(this);
24 }
25
26 protected override void LoadViewState(object savedState)
27 {
28 OutPut("2.LoadViewState");
29 base.LoadViewState(savedState);
30
31 }
32
33 public virtual bool LoadPostData(string postDataKey, NameValueCollection postCollection)
34 {
35
36 OutPut("3.LoadPostData");
37 return true;
38 }
39
40 protected override void OnLoad(EventArgs e)
41 {
42 OutPut("4.OnLoad");
43 base.OnLoad(e);
44 }
45
46 public virtual void RaisePostDataChangedEvent()
47 {
48 OutPut("5. RaisePostDataChangedEvent");
49 }
50
51 public virtual void RaisePostBackEvent(string eventArgument)
52 {
53 OutPut("6. RaisePostBackEvent");
54 }
55
56 private void OutPut(string strText)
57 {
58 if (this.DesignMode == false)
59 {
60 HttpContext.Current.Response.Write(strText + "<br>");
61 }
62 }
63
64 protected override void OnPreRender(EventArgs e)
65 {
66 OutPut("7. OnPreRender");
67 base.OnPreRender(e);
68 }
69
70 protected override object SaveViewState()
71 {
72 OutPut("8. SaveViewState");
73 base.SaveViewState();
74 return new Pair();
75 }
76
77 protected override void Render(HtmlTextWriter writer)
78 {
79 writer.Write("<INPUT type=button name=\"{0}\" value=\"Click Me!\" style='position:absolute; left: 20; top: 280px' onclick=\"{1}\">", this.UniqueID, Page.ClientScript.GetPostBackEventReference(this, ""));
80 OutPut("9. Render");
81 base.Render(writer);
82 }
83
84 }
85 }
86
- 海报