zoukankan      html  css  js  c++  java
  • .net 控件生命周期

    这里列举出来了11个生命周期,一般的控件生命周期会经历这11个生命周期,但是有一些特别的控件比如页面控件System.Web.UI.Page等。

    具体代码参考如下:

         /// <summary>
            /// 1. 初始化
            /// </summary>
            /// <param name="e"></param>
            protected override void OnInit(EventArgs e)
            {
                OutPut("1. OnInit");
                base.OnInit(e);
                this.Page.RegisterRequiresPostBack(this);
            }
    
            /// <summary>
            /// 2. 装载视图
            /// </summary>
            /// <param name="savedState"></param>
            protected override void LoadViewState(object savedState)
            {
                OutPut("2. LoadViewState");
                base.LoadViewState(savedState);
            }
    
            /// <summary>
            /// 3. 回传数据处理
            /// </summary>
            /// <param name="postDataKey"></param>
            /// <param name="postCollection"></param>
            /// <returns></returns>
            public virtual bool LoadPostData(string postDataKey, NameValueCollection postCollection)
            {
                OutPut("3. LoadPostData");
                return true;
            }
    
            /// <summary>
            /// 4. 装载时间
            /// </summary>
            /// <param name="e"></param>
            protected override void OnLoad(EventArgs e)
            {
                OutPut("4. OnLoad");
                base.OnLoad(e);
            }
    
            /// <summary>
            /// 5. 回传事件通知
            /// </summary>
            public virtual void RaisePostDataChangedEvent()
            {
                OutPut("5. RaisePostDataChangedEvent");
            }
    
            /// <summary>
            /// 6. 处理回发事件
            /// </summary>
            /// <param name="eventArgument"></param>
            public virtual void RaisePostBackEvent(string eventArgument)
            {
                OutPut("6. RaisePostBackEvent");
            }
    
            /// <summary>
            /// 7. 预呈现
            /// </summary>
            /// <param name="e"></param>
            protected override void OnPreRender(EventArgs e)
            {
                OutPut("7. OnPreRender");
                base.OnPreRender(e);
            }
    
            /// <summary>
            /// 8 保存视图状态
            /// </summary>
            /// <returns></returns>
            protected override object SaveViewState()
            {
                OutPut("8. SaveViewState");
                base.SaveViewState();
                return new Pair();
            }
    
            /// <summary>
            /// 9. 呈现 
            /// </summary>
            /// <param name="writer"></param>
            protected override void Render(HtmlTextWriter writer)
            {
                writer.Write("<input type='button' name="{0}" value="Click Me!" style='position: absolute; left: 20px; top: 280px;' onclick="{1}" />", "[控件声明周期]", Page.ClientScript.GetPostBackEventReference(this, ""));
                OutPut("9. Render");
                base.Render(writer);
    
            }
    
            /// <summary>
            /// 10. 卸载
            /// </summary>
            /// <param name="e"></param>
            protected override void OnUnload(EventArgs e)
            {
                OutPut("10. OnUnload");
                base.OnUnload(e);
            }
    
            /// <summary>
            /// 11. 释放资源
            /// </summary>
            public override void Dispose()
            {
                OutPut("11. Dispose");
                base.Dispose();
            }
    
            private void OutPut(string strText)
            {
                if (this.DesignMode == false)
                {
                    HttpContext.Current.Response.Write(strText + "<br />");
                }
            }
    
    
            [Bindable(true)]
            [Category("Appearance")]
            [DefaultValue("")]
            [Localizable(true)]
            public string Text
            {
                get
                {
                    String s = (String)ViewState["Text"];
                    return ((s == null) ? String.Empty : s);
                }
    
                set
                {
                    ViewState["Text"] = value;
                }
            }
    
            protected override void RenderContents(HtmlTextWriter output)
            {
                output.Write(Text);
            }

    这个代码复制到asp.net 服务器控件中,即可调试。

  • 相关阅读:
    T4模板使用记录,生成Model、Service、Repository
    sortablejs + vue的拖拽效果 列表个数不固定 刷新后保持拖拽后的效果
    vue获取input焦点,弹框后自动获取input焦点
    vue proxy 跨域代理
    vue 同步 $nextTick setTimeout 执行的顺序
    js手写日历插件
    js数组随机排序
    vue自定义插件
    elementui 自定义表头 renderHeader的写法 给增加el-tooltip的提示
    awit的用法,等待执行结果
  • 原文地址:https://www.cnblogs.com/Jimmy009/p/3531630.html
Copyright © 2011-2022 走看看