0

これを手伝ってください。Viewstate は app_code のクラスで使用できますか?

app_code にこのコードがありますが、機能していないようです。viewstate は常に何も設定されていません。App_Code フォルダー内のクラス内の ViewState に値を保持するにはどうすればよいですか?

 Public Property GridViewSortDirection() As String

            Get
                Return IIf(ViewState("SortDirection") = Nothing, "ASC", ViewState("SortDirection"))
            End Get
            Set(ByVal value As String)
                ViewState("SortDirection") = value
            End Set
 End Property

これは GridviewSortDirectio の値を設定するコードです

Public Function GetSortDirection() As String

            Select Case GridViewSortDirection
                Case "ASC"
                    GridViewSortDirection = "DESC"
                Case "DESC"
                    GridViewSortDirection = "ASC"
            End Select

            Return GridViewSortDirection
        End Function

次に、getSortDirection がページ (test.aspx.vb) で呼び出されます。

4

1 に答える 1

1

ブラウザでソースを表示すると、多くの意味不明な内容が表示されます。VIEWSTATE を検索するだけで表示されます。HTTP リクエストはステートレスであるため、これは重要です。つまり、サーバーへのすべてのリクエストで、ブラウザは古いページを離れて新しいページを取得します。

ポストバック中、これは問題です。基本的にページを離れて、きれいな新しいページを取得しているためです。たまたま同じページになっているだけです。ドロップダウン選択やテキストボックス入力など、ページの状態を保存する方法が必要であり、これは ViewState を通じて行われます。あなたが見る意味不明なものは、状態を維持するために使用されるエンコードされたデータとしてのこの情報です。

ブラウザー ウィンドウ (上部のボタン) を更新すると、ViewState は失われ、データは元の状態に戻ります。

App_Code は、ページとは関係なくサーバーに格納されるクラスです。これが、App_Code に ViewState がない理由です。ページの外で状態を維持したい場合は、ブラウザ ウィンドウを閉じるまでデータをサーバーに保存します。あなたの場合、おそらくデータをパラメーターとして渡す方が適切ですSession

Public Function GetSortDirection(direction) As String
            Select Case direction
                Case "ASC"
                    Return "DESC"
                Case "DESC"
                    Return "ASC"
            End Select
        End Function

詳細な説明については、MSDN の記事を参照してください

于 2013-02-27T12:49:12.373 に答える