Page_Load vs OnLoad

eya*_*alb 8 .net c# asp.net page-lifecycle

为什么DisplayUsers();不起作用?

我的基页是:

public class adminPage : System.Web.UI.Page
{
    protected override void OnLoad(EventArgs e)
    {
        if (User.Identity.IsAuthenticated == false) { Response.Redirect("~/Account/login.aspx?ReturnUrl=/admin"); };
        if (!(User.IsInRole("admin") || User.IsInRole("super user"))) { Response.Redirect("/"); };
    }        
  }
Run Code Online (Sandbox Code Playgroud)

我的班级是

public partial class users : adminPage
{ 
    protected void Page_Load(object sender, EventArgs e)
    {                        
        string sName;
        adminGeneralData.GetToolData(2, out sName);
        pageH1.Text = sName;

        DisplayUsers();
    }

    protected void DisplayUsers()
    {
        DataSet ds = userData.GetUsersData();
        userList.DataSource = ds;
        userList.DataBind();
    }
}
Run Code Online (Sandbox Code Playgroud)

DisplayUsers()不起作用,

Met*_*urf 18

如果我没记错的话,你需要调用基类的OnLoad事件来Page_Load正确注册事件:

protected override void OnLoad(EventArgs e)
{
    if (User.Identity.IsAuthenticated == false) { Response.Redirect("~/Account/login.aspx?ReturnUrl=/admin"); };
    if (!(User.IsInRole("admin") || User.IsInRole("super user"))) { Response.Redirect("/"); };

    base.OnLoad(e);
}
Run Code Online (Sandbox Code Playgroud)

这里有几个很好的读物: