更改页面生命周期

时间:2011-09-21 09:56:34

标签: asp.net

Page类调用哪个方法来实例化其控件?我想覆盖它,以便能够仅实例化某些控件。

4 个答案:

答案 0 :(得分:1)

这里有一个很好的解释:ASP.NET Page Life Cycle Overview

如果你进行ASP.NET Web表单开发,必须阅读这样的文章。

只是你在使用Page_Load和Page_Init时没有线索就有了一些背景知识,在文章中有一个表格,其中包含正确顺序的所有事件列表以及每个事件的完整说明。

答案 1 :(得分:0)

如果你的控件没有动态实例化,那么正常页面生命周期中的就不能

答案 2 :(得分:0)

如果你打开反射器它有一个叫做的函数:

loadControlRecursivly(或类似的东西) - 那就是他所做的事。

答案 3 :(得分:0)

这里是:

internal virtual void LoadRecursive()
{
    if (this._controlState < ControlState.Loaded)
    {
        if (this._adapter != null)
        {
            this._adapter.OnLoad(EventArgs.Empty);
        }
        else
        {
            this.OnLoad(EventArgs.Empty);
        }
    }
    if ((this._occasionalFields != null) && (this._occasionalFields.Controls != null))
    {
        string errorMsg = this._occasionalFields.Controls.SetCollectionReadOnly("Parent_collections_readonly");
        int count = this._occasionalFields.Controls.Count;
        for (int i = 0; i < count; i++)
        {
            this._occasionalFields.Controls[i].LoadRecursive();
        }
        this._occasionalFields.Controls.SetCollectionReadOnly(errorMsg);
    }
    if (this._controlState < ControlState.Loaded)
    {
        this._controlState = ControlState.Loaded;
    }
}