什么事件在asp.net页面中的任何其他事件之前触发

时间:2013-11-09 20:26:35

标签: asp.net events

我想知道哪个事件在其他任何事件之前被触发?哪个事件在Button Click或任何其他控件之前触发。如果没有,我怎么能自己实施一些活动?我也希望它与UpdatePanel一起使用。 Page_PreRender会在其他事件发生后触发......哪一个事件在它们之前发射? 提前谢谢。

1 个答案:

答案 0 :(得分:0)

Page生命周期中有几个事件发生在PreRender之前。值得注意的是:InitLoad和Postback事件处理程序。

您能更具体地了解自己想做什么吗?我建议使用Page_Load在每次加载时执行某些操作。这将允许您准备要呈现的页面的数据。

您可以初始化数据的第一个地方是基类或Page的构造函数。以下是Page中使用的一种模式,例如(c#):

public class MemberInfo : System.Web.UI.Page
{
    // member variables
    private string memberId;

    // UI members defined in .aspx,.ascx,etc. file
    protected System.Web.UI.WebControls.CheckBox checkboxPremiumMember;

    // default constructor
    public MemberInfo()
    {
         // step 1: initialize data
         memberId = null;
    }
    // event handlers
    protected void Page_Init(object sender, EventArgs e)
    {
        // step 2: initialize page controls and event handlers
        checkboxPremiumMember.Visible = false;
    }
    protected void Page_Load(object sender, EventArgs e)
    {
        // step 3: load data, populate controls, databinding stuff..
        memberId = Request.QueryString["memberId"];
        bool authenticated = AuthenticateMemberId(memberId);
        if (authenticated)
        {
             checkboxPremiumMember.Visible = true;
        }
        else
        {
             Response.Redirect("AccessDenied.aspx");
        }
    }

    // step 4: postback event handlers (if any)
    protected void checkboxPremiumMember_OnCheckChanged(object sender, EventArgs e)
    {
    }

    // step 5: PreRender
    protected void Page_PreRender(object sender, EventArgs e)
    {
    }

    // step 6: Render
    protected void Page_Render(object sender, EventArgs e)
    {
    }
}

还有其他一些事件,例如LoadViewStateSaveViewState等。您将需要了解ASP.NET页面生命周期。在这里查看相关答案: ASP.NET page life cycle explanation

或只是谷歌“asp.net页面生命周期”