なぜ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("/"); };
}
}
_
私のクラスは
_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();
}
}
_
しかし、DisplayUsers()
は機能しません、
正しく思い出せば、Page_Load
イベントを正しく登録するには、基本クラスのOnLoad
イベントを呼び出す必要があります。
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);
}
ここにいくつかの良い読み物があります:
パフォーマンスのヒントとコツ によると.NETアプリケーション:
Autoeventwireup機能を回避する
Autoeventwireupに依存する代わりに、Pageからのイベントをオーバーライドします。たとえば、Page_Load()メソッドを作成する代わりに、public void OnLoad()メソッドをオーバーロードしてみてください。これにより、実行時にすべてのページに対してCreateDelegate()を実行する必要がなくなります。