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

最近、ある会社の面接でこの質問をされました。

よろしくプラヴィーン

4

4 に答える 4

5

コンストラクターでイベント ハンドラーをアタッチします。

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


   void MyPage_Load(object sender, EventArgs e)
   {

   }
}

デフォルトの規則を変更することを支持しているとは思えません。間違っている可能性があります。

于 2012-07-05T15:51:24.607 に答える
1

ここStackOverflowでずっと前によく説明されていました:Page_Loadを呼び出すものとその方法

于 2012-07-05T15:59:40.437 に答える
0
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)
    {

    }
}
于 2012-07-05T18:11:51.997 に答える
0

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)

すべての変更を保存し、zip ファイルに再度圧縮して、それがテンプレート ディレクトリにあることを確認します。これで、すべての新しいページでそのテンプレートが使用されます。

于 2012-07-05T16:11:05.473 に答える