- - PR -
マスターページでViewStateをSession変数へ保存する方法について
1
投稿者 | 投稿内容 | ||||
---|---|---|---|---|---|
|
投稿日時: 2007-01-11 10:40
ASP.NET2.0(Visual Web Developer 2005 Express Edition)でWEBアプリケーションの開発をしています。
マスターページを作成してビューステートをセッション変数へ保存しようとしたのですが、以下エラーが出てOverridesできません。マスターページでは不可能なのでしょうか? コード Protected Overrides Sub SavePageStateToPersistenceMedium(ByVal viewState As Object) 'ページのビューステートをセッション変数へ保存 Session("ViewState" & Me.GetType.Name) = viewState End Sub Protected Overrides Function LoadPageStateFromPersistenceMedium() As Object 'ページのビューステートをセッション変数から読み込む Return Session("ViewState" & Me.GetType.Name) End Function エラー sub 'SavePageStateToPersistenceMedium' はベース class の sub をオーバーライドしないため、'Overrides' として宣言することはできません。 function 'LoadPageStateFromPersistenceMedium' はベース class の function をオーバーライドしないため、'Overrides' として宣言することはできません。 | ||||
|
投稿日時: 2007-01-11 11:58
MasterPage メソッド MasterPageにはそのメソッドないからオーバーライドはムリじゃないっすかね。
Webページのベースクラスを作るのが良いのでは。Pageを継承したクラスを。ベースクラスの中でビューステートの細工をしてみてはいかがでしょうか。 | ||||
|
投稿日時: 2007-01-11 12:41
本題から外れるかもしれませんが、SavePageStateToPersistenceMedium のドキュメントを読んでもらえば分かるように、ASP.NET 2.0 からは PageStatePersister を使って、ビューステートの保存場所を変更できます。組み込みの SessionPageStatePersister が用意されているので、簡単にセッションに書き出せると思います。
ただ、もちろん状況に依りますがビュー状態をセッションに持たせるのはあまり良い作法とは言えません。 _________________ 囚人のジレンマな日々 | ||||
|
投稿日時: 2007-01-11 14:11
かめたろさん・囚人さん回答ありがとうございます。
やりたかったのは、ViewStateをセッション変数へ保存することなので、PageStatePersisterを調べてみました。 以下ページにサンプルはあったのですが、pageに実装するのではなくSessionPageStatePersister クラスのインスタンスを返す PageAdapter クラスを記述する方法になります。PageAdapter クラスを記述した後、どうページに反映するかが分かりません。アドバイスよろしくお願いします。 http://msdn2.microsoft.com/ja-jp/library/system.web.ui.sessionpagestatepersister(VS.80).aspx | ||||
|
投稿日時: 2007-01-11 14:11
かめたろさん・囚人さん回答ありがとうございます。
やりたかったのは、ViewStateをセッション変数へ保存することなので、PageStatePersisterを調べてみました。 以下ページにサンプルはあったのですが、pageに実装するのではなくSessionPageStatePersister クラスのインスタンスを返す PageAdapter クラスを記述する方法になります。PageAdapter クラスを記述した後、どうページに反映するかが分かりません。アドバイスよろしくお願いします。 http://msdn2.microsoft.com/ja-jp/library/system.web.ui.sessionpagestatepersister(VS.80).aspx | ||||
|
投稿日時: 2007-01-11 16:07
http://msdn2.microsoft.com/ja-jp/library/system.web.ui.pagestatepersister(VS.80).aspx ちょいと見落としですかね? こんな風に、基底クラスの説明部分で使い方が記述されていたりもします。 | ||||
|
投稿日時: 2007-01-11 16:45
なちゃさんのご指摘どおり、MyPageAdapter アダプタを有効にするための記述がありました。
さっそく試してみようと思います。 皆さんアドバイスありがとうございました。 |
1