zoukankan      html  css  js  c++  java
  • LifecycleControl.cs

    // Title: Building ASP.NET Server Controls
    //
    // Chapter: 5 - Event-based Programming
    // File: LifecycleControl.cs
    // Written by: Dale Michalk and Rob Cameron
    //
    // Copyright ?2003, Apress L.P.
    using System;
    using System.Web.UI;
    using System.Collections.Specialized;
    using System.Diagnostics;

    namespace ControlsBookLib.Ch05
    {
       [ToolboxData("<{0}:Lifecycle runat=server></{0}:Lifecycle>")]
       public class Lifecycle : Control, IPostBackEventHandler, IPostBackDataHandler
       {
          // Init Event
          override protected void OnInit(System.EventArgs e)
          {         
             Trace("Lifecycle: Init Event.");
             base.OnInit(e);
          }

          override protected void TrackViewState()
          {         
             Trace("Lifecycle: Track ViewState.");
             base.TrackViewState();
          }

          // Load ViewState Event
          override protected void LoadViewState(object savedState)
          {         
             Trace("Lifecycle: Load ViewState Event.");
             base.LoadViewState(savedState);
          }

          // Load Postback Data Event
          public bool LoadPostData(string postDataKey,
             NameValueCollection postCollection)
          {
             Trace("Lifecycle: Load PostBack Data Event.");

             Page.RegisterRequiresRaiseEvent(this);
             return true;
          }

          // Load Event
          override protected void OnLoad(System.EventArgs e)
          {         
             Trace("Lifecycle: Load Event.");
             base.OnLoad(e);
          }

          // Post Data Changed Event
          public void RaisePostDataChangedEvent()
          {
             Trace("Lifecycle: Post Data Changed Event.");
          }

          // Postback Event
          public void RaisePostBackEvent(string argument)
          {
             Trace("Lifecycle: PostBack Event.");
          }

          // PreRender Event
          override protected void OnPreRender(System.EventArgs e)
          {         
             Trace("Lifecycle: PreRender Event.");
             Page.RegisterRequiresPostBack(this);
             base.OnPreRender(e);
          }

          // Save ViewState
          override protected object SaveViewState()
          {
             Trace("Lifecycle: Save ViewState.");
             return base.SaveViewState();
          }

          // Render Event
          override protected void Render(HtmlTextWriter writer)
          {   
             base.Render(writer);
             Trace("Lifecycle: Render Event.");
             writer.Write("<h3>LifeCycle Control</h3>");
             
          }

          // Unload Event
          override protected void OnUnload(System.EventArgs e)
          {         
             Trace("Lifecycle: Unload Event.");
             base.OnUnload(e);
          }

          // Dispose Event
          public override void Dispose()
          {         
             Trace("Lifecycle: Dispose Event.");
             base.Dispose();
          }

          private void Trace(string info)
          {
             Context.Trace.Warn(info);
             Debug.WriteLine(info);
          }
       }
    }
  • 相关阅读:
    【原】如何实现IE6下块级元素的内容自动收缩
    【原】常见的模块,你语义化了没
    【转】CSS Nuggest
    那年,寻找工作的历程
    前端开发小工具SuperApp——Ctrl+S自动刷新浏览器
    【转】在html中引入CSS的方法
    HTML中常用的实体字符
    imemode:disabled 禁止表单使用文本框输入法
    【原】工作中常用win7快捷键
    复制本地文件完整路径
  • 原文地址:https://www.cnblogs.com/shihao/p/2498721.html
Copyright © 2011-2022 走看看