共通処理用Page派生クラス(commonクラス)
概要
- system.web.ui.page クラスを継承するcommonクラスを作成する。
- アプリケーション共通の処理をcommonクラスに定義する。
- アプリケーションの各ファイルが、commonクラスを継承することによって、共通処理を実現する。
default.aspxの場合
system.web.ui.page クラス
↓継承
common クラス ←こいつに共通処理を書く
↓継承
_default クラス
元ネタ:
前提条件
手順
[ソリューションエクスプローラ] -> webサイトを右クリック -> 「新しい項目の追加」
not found (119.jpg)
「クラス」を選択 -> 「追加」
not found (120.jpg)
「はい」を押す。
not found (121.jpg)
「app_code」フォルダと、「class1.vb」ファイルが追加されている。
not found (122.jpg)
App_Code/Class1.vbを以下のように変更。
Imports System
Imports System.Collections
Imports System.Web.UI
Imports System.Web.UI.WebControls
Public Class common
Inherits Page
Private Sub Page_Load(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.Load
Response.Write("あえて言わせてもらおう!")
End Sub
End Class
default.aspx.vbを以下のように変更。
Partial Class _default
Inherits common
Protected Sub Page_Load(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.Load
Response.Write("テストであると!")
End Sub
End Class
実行すると以下のようになる。
commonクラスのpage_loadイベントが先に処理され、
その後、default.aspx.vbのpage_loadイベントが処理されているのがわかる。
commonクラスのpage_loadイベントが先に処理され、
その後、default.aspx.vbのpage_loadイベントが処理されているのがわかる。
not found (123.jpg)
次に、違うwebフォームにcommonクラスを継承させる。
default2.aspx.vbを以下のように変更。
default2.aspx.vbを以下のように変更。
Partial Class Default2
Inherits common
Protected Sub Page_Load(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.Load
Response.Write("別ページであると!")
End Sub
End Class
実行すると以下のようになる。
commonクラスのpage_loadイベントは処理されているが、
default.aspxとは別のwebフォームであるのがわかる。
commonクラスのpage_loadイベントは処理されているが、
default.aspxとは別のwebフォームであるのがわかる。
not found (127.jpg)