|
.NET TIPS [ASP.NET]アプリケーション共通の処理をPage派生クラスで実装するには?山田 祥寛2005/04/29 |
![]() |
|
|
|
「TIPS:[ASP.NET]検証コントロールのエラー・メッセージを一元管理するには?」では、ASP.NETの検証コントロールで出力するエラー・メッセージを一元的に管理する方法について紹介した。そのTIPSでは、分かりやすさを優先してメッセージ生成のロジックを.aspxファイル上にまとめて記述しているが、本来、こうしたアプリケーション共通の処理はどこか1カ所で共通的に定義するのが好ましい。
アプリケーション共通の処理を記述するには、Global.asaxやHTTPモジュールを利用する方法もあるが、今回の例のように、Pageクラス(System.Web.UI名前空間。ASP.NETにおけるWebページの実体)にアクセスする処理を記述しなければならない場合には、Pageクラスを継承した独自のクラス(Page派生クラス)を定義する方が便利だ。
Page派生クラスにアプリケーション共通の処理を定義すれば、個々のWebフォームはこのPage派生クラスから継承するだけでその処理を実装することができる。
![]() |
| Page派生クラスを利用した共通機能の実装 |
●Page派生クラスを作成する
それでは、実際にPage派生クラスを利用したアプリケーション共通機能の実装例を見てみよう。
本稿では、「TIPS:[ASP.NET]検証コントロールのエラー・メッセージを一元管理するには?」で紹介したvalidateManage_cs.aspx/validateManage_vb.aspxを、Page派生クラスを利用して書き直してみることにする。なお、メソッド内部のロジックについては、前掲のTIPSでも紹介したとおりなので、詳しくはそちらをご覧いただきたい。
以下の実装例では、Pageクラスから派生したMyPageクラスを記述している。
|
|
| Page派生クラスによる実装例(C#版:MyPage.cs) |
|
|
| Page派生クラスによる実装例(VB.NET版:MyPage.vb) |
Page派生クラスを定義するために最低限必要な条件は、以下の2点だ。
-
System名前空間、System.Web.UI名前空間、System.Web.UI.WebControls名前空間をインポートすること
-
Pageクラス(System.Web.UI名前空間)を継承すること
MyPage.vb(またはMyPage.cs)を使用するに先立って、あらかじめコマンド・プロンプトからこれをコンパイルしておく必要がある。コンパイルの構文は以下のとおり。
|
|
| Page派生クラス(MyPage.cs)のコンパイル方法(C#の場合) |
|
|
| Page派生クラス(MyPage.vb)のコンパイル方法(VB.NETの場合) |
コンパイルの結果、作成されたMyPage.dllはアプリケーション・ルート配下の「bin」フォルダに配置しておくこと。
●Page派生クラスを利用(継承)する
次に、Page派生クラス(本稿ではMyPageクラス)を継承した個別のページを作成し、実際にMyPageクラスでの定義内容が個別のページに適用されていることを確認してみよう。
|
|
| Page派生クラス(MyPageクラス)を適用したWebフォームの例(ValidateManage.aspx) |
Page派生クラスを適用するのは簡単だ。@PageディレクティブのInherits属性から適用したいPage派生クラスの完全修飾名(ここでは「Wings.MyPage」)を指定するだけでよい。あとはWebフォーム(ValidateManage.aspx)を実行して、前掲のTIPSと同様の結果が確認できれば成功だ。
なお、本稿では個別のWebフォーム上でPage派生クラスを宣言しているが、代わりにweb.configで宣言することもできる。上記のWebフォーム(ValidateManage.aspx)からInherits属性の記述を取り除き、以下のようなweb.configを記述してみてほしい。やはり同様の結果が得られるはずだ。
|
|
| Page派生クラスの適用を宣言したweb.config | |
| 個別のWebフォーム上でPage派生クラスを宣言する代わりに、web.configで宣言することもできる。 |
<page>要素のpageBaseType属性には「型名,アセンブリ名」の形式で値を設定すること(上記の例では「Wings.MyPage, MyPage」と指定している)。![]()
| カテゴリ:Webフォーム 処理対象:検証 使用ライブラリ:Pageクラス(System.Web.UI名前空間) 関連TIPS:[ASP.NET]検証コントロールのエラー・メッセージを一元管理するには? |
| 「.NET TIPS」 |
TechTargetジャパン
- 新人プログラマーのためのInsider.NETの歩き方 2012 (2012/5/22)
晴れて.NETプログラマーとなる新人が効率的に開発技術を習得するには? 大量にある記事群の中から新人が読むべきお勧めを厳選して紹介 - jQuery MobileでJavaScriptプログラミング (2012/5/17)
jQuery Mobileは手軽なだけでなく、JavaScriptのAPIも充実しており、独自機能の実装もできる。今回は「グローバル設定」と「イベント」を解説 - Windows上で開発するための開発環境構築入門 (2012/5/16)
Windowsを使ってチームで開発している? なのにサーバOSを設定・運用した経験がない? そうなら、今すぐ学ぼう - 「コントラクト」でアプリのサンドボックスを乗り越える! (2012/5/11)
Metroスタイル・アプリはサンドボックスの中で動作する。それを乗り越えてほかのアプリと連携する仕組み「コントラクト」を解説
|
|
キャリアアップ
スポンサーからのお知らせ
- - PR -
イベントカレンダー
- - PR -



