- 題名: Viewstateの値保持
- 日時: 2011/02/16 23:54:26
- ID: 28185
- この記事の返信元:
- (なし)
- この記事への返信:
- [28196] Re[1]: Viewstateの値保持2011/02/17 13:38:12
- ツリーを表示
2011/02/17(Thu) 13:39:51 編集(投稿者) ■No28185 に返信(PGさんの記事) > 実際実行すると、マスターページとコンテンツページがまとまった1つのページとなるのですが、 > Viewstateはマスターページとコンテンツページ間で値の保持ができないのでしょうか?? HTML を出力する段階においてマスターページとコンテンツページは結合されますが、 サーバー側でのコントロールの認識といいますか、MasterPage.ViewState プロパティと Page.ViewState プロパティはそれぞれ異なります。 MasterPage.ViewState プロパティに設定した値が Page.ViewState プロパティと共有される ことはありません。 ViewState に設定する値がマスターページと関連するものであれば、値の取得もマスターページで 行うとよいと思います。 [Site1.Master] Public ReadOnly Property A() As Integer If (Me.ViewState("a") Is Nothing) Then Return -1 Else Return DirectCast(Me.ViewState("a"), Integer) End If End Property [WebForm1.aspx.vb] Protected Sub Page_Load(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.Load Dim a As Integer = DirectCast(Me.Master, Site1).A Debug.WriteLine(a) End Sub ViewState に設定する値がコンテンツページと関連するものであれば、値の設定をコンテンツページ で行うとよいと思います。
分類:[ASP.NET]
ASP.NET4.0(VB)でWEBのシステムを開発しております。
Viewstateの値保持に関しましてご質問があります。
マスターページで「Viewstate("a") = 1」のように設定し、マスターページを継承しているコンテンツページで「Viewstate("a")」を見ると、Nothingになっています。
実際実行すると、マスターページとコンテンツページがまとまった1つのページとなるのですが、Viewstateはマスターページとコンテンツページ間で値の保持ができないのでしょうか??
Viewstateでできなければ、Sessionを使って実装しようとは思っております。
ご教授お願いします。