2011-10-24 4 views
0

は、私は、Visual Studio 2010 (私のフォルダ)にフォルダを作って、私は
iは内部のすべてのcontent pagesのすべてのPage_LoadそれともPage_PreInitにクラスをフックしたい...マスターやコンテンツページでそのフォルダベース内の多くのページを持っていますそのfoldermaster page
私はそのフォルダ内の私的なweb.configでどうすればいいですか?事前web.configの各page_Loadのイベントハンドラ(フック)

+0

downvoter、plz私にコメントをする... – MoonLight

答えて

1

私はそれがあなたがそれを必要としている方法で可能だとは確信していませんが、ここにいくつかの考えがあります。

最初にSystem.Web.UI.PageoverrideOnLoadまたはOnPreInitから継承するクラスを作成する必要があります。そのような何か:

public class MyPage : Page { 
    protected override void OnLoad(EventArgs e) { 
      base.OnLoad(e); 
     } 
    } 

次のことができます:

  • のいずれかを使用<system.web/pages>内部pageBaseType="typename, assembly"attribute。しかしこれはコードビハインドファイルを持たないページでのみ機能するので、削除してaspx(Mark-Up)ページの上部にあるInherits属性を削除する必要があります。

  • カスタムクラスを使用するページのコードビハインドファイルを編集し、それを継承させます。

+0

Answer/iテストオプション#1と#2 /オプ​​ション#2は大丈夫ですが、オプション#1では、コードの背後にあるページについて何ができますか? – MoonLight

+0

あなたは正しいです、オプション1はコードの背後にあるページでは機能しません。aspx(マークアップ)ページの上部にあるcsファイルと継承属性を削除しました=>今は動作しますが、 – MoonLight

2

おかげでSystem.Web.UI.Pageから継承するカスタムクラスを作成します - OnLoadをオーバーライドしたりpage_loadイベントをフックアップし、あなたの必要性に従って実装を提供します。

このクラスを構成ファイルの基本ページクラスusing pageBaseType attribute in pages elementとして指定します。

+0

コードビハインドファイルがあるページでは機能しません。 – djsolid

+0

@VinayCお返事ありがとうございました/あなたは私たちに前のコメントについていくつか説明してください。 – MoonLight

+0

@MonnLight、djsolidは正しい - この方法はウェブサイトでも有効です。 aspxページの 'inherits'属性は' pageBaseType'に取って代わるものです。value - コードビハインドクラスを持つファイルの場合、 'inherits'属性はコードビハインドクラスを指します。コードビハインドクラスは、通常継承するクラス(既定ではSystem.Web.UI.Page)を記述します。したがって、Webアプリケーションの場合、構成を使用してベースページクラスを変更することはできません(ただし、コードビハインドファイルを編集する必要があります)。 – VinayC

関連する問題