Instead of page_load i want to write PageName_Load, how can i do
最近、ある会社の面接でこの質問をされました。
よろしくプラヴィーン
コンストラクターでイベント ハンドラーをアタッチします。
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を呼び出すものとその方法
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)
{
}
}
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)
すべての変更を保存し、zip ファイルに再度圧縮して、それがテンプレート ディレクトリにあることを確認します。これで、すべての新しいページでそのテンプレートが使用されます。