簡體   English   中英

如何在ASP.NET中將Page_load重命名為PageName_load

[英]How to renamed Page_load to PageName_load in asp.net

      Instead of page_load i want to write PageName_Load, how can i do 

最近這個問題在面試中被問到我公司的一位

普拉加(Rgards Praveen)

在構造函數中為其附加事件處理程序:

public class MyPage : System.Web.UI.Page
{
   public MyPage()
   {
      this.Load += new EventHandler(MyPage_Load);
   }


   void MyPage_Load(object sender, EventArgs e)
   {

   }
}

我不認為在更改默認約定方面有任何支持。 可能是錯誤的。

很久以前在StackOverflow上已經對此進行了很好的描述: 什么調用Page_Load,它是如何做到的?

為了補充Brian和invisible的帖子,您還可以更改Web模板以所需的方式創建頁面。

導航到您的ASP模板目錄:

C:\\ Program Files(x86)\\ Microsoft Visual Studio 10.0 \\ Common7 \\ IDE \\ ItemTemplates \\ CSharp \\ Web \\ 1033

這可能會根據您的環境而改變,但這應該可以帶您到附近。

找到並提取WebForm.zip (始終保留備份!) 您會在此模板中注意到一些文件:

  • Default.aspx
    ASPX頁面模板
  • Default.aspx.cs
    代碼隱藏模板(通常在其中添加您自己的代碼)
  • Default.aspx.designer.cs
    IDE生成的文件(用於管理頁面上的控件列表)。
  • WebForm.vstemplate描述模板所需的元數據的庫等。

從那里,一些編輯使其成為默認行為:

  1. 編輯Default.aspx並從標題中刪除AutoEventWireup="true"
  2. 編輯Default.aspx.cs並將Page_Load更改為PageName_Load (或者我可以使用Page$classname$_Load ...)
  3. 編輯Default.aspx.designer.cs並添加綁定this.Load += new EventHandler(PageName_Load)的構造函數this.Load += new EventHandler(PageName_Load)

保存所有更改,重新壓縮回zip文件,並確保它位於模板目錄中。 現在,所有新頁面都將使用該模板。

public class BasePage : System.Web.UI.Page
{
    public BasePage()
    {
        var myPageLoadDelegate = (EventHandler)Delegate.CreateDelegate(typeof(EventHandler), this, this.GetType().BaseType.Name + "_Load", true, false);
        if (myPageLoadDelegate != null)
        {
            this.Load += myPageLoadDelegate;
        }
    }
}

public partial class WebForm1 : BasePage
{
    protected void WebForm1_Load(object sender, EventArgs e)
    {

    }
}

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM