asp.net页面的生命周期
一,初始化对象
一个页面的控件(以及页面本身)正确的初始化.可以通过OnInit来重载初始化事件.
二,导入Viewstate数据
初始化事件后,所有控件只可以通过ID被引用访问(还没有相应的DOM可使用),在LoadViewState事件中,所有控件获得第一个属性:Viewstate.这个属性最终将被返回给服务器以判断这个页面是已经被用户访问完毕还是仍然在被用户所访问.”名称/值”的字符串方式保存,包含控件的文本及值信息.属性被存储在一个隐藏的<input>控件的值里面,在请求页面时被传递.可以重载LoadViewState事件进行相应值设定.
protected override void LoadViewState(object savedState) { base.LoadViewState(savedState); txtFName.Text = (string)ViewState["FName"]; }
三,用LoadPostData处理Postback数据
当页面提交表单时,框架就在提交了数据的控件上执行一个IPostBackDataHandler
接口操作,在LoadPostData事件后,就执行下面的RaisePostDataChanged事件.
四,导入对象
整个生命周期中最重要的,最主要的,可以通过OnLoad来重载Load事件.
protected override void OnLoad(EventArgs e) { if (ViewState["Message"] == null) { ViewState["Message"] = "message"; } }
这个事件发生在所有的控件执行了IPostBackDataHandler接口操作并被正确的postback数据更新后的.这个过程中,每个控件都被给一个布尔值标志控件有没有被更新.
六,处理客户端POSTBACK事件
七,预先呈递对象
八,保存ViewState
九,呈递HTML
当Render事件被重载时,开发者可以编写自定义的HTML代码,使原来生成的HTML无效,按新HTML来组织页面。Render方法将一个HtmlTextWriter对象作为参数并用它将html在浏览器上以网页的形式显示。
十,销毁对象
也可以重写Dispose事件。