[英]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
Default.aspx.cs
Default.aspx.designer.cs
WebForm.vstemplate
描述模板所需的元數據的庫等。 從那里,一些編輯使其成為默認行為:
AutoEventWireup="true"
。 Page_Load
更改為PageName_Load
(或者我可以使用Page$classname$_Load
...) 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.