本当に奇妙です...だから、グリッドビューのページインデックスをセッション変数に保存し、ユーザーがグリッドビューに戻ったときにインデックスをリセットしようとしています。以下は私のコードです。
Protected Sub Page_PreRender(ByVal sender As Object, ByVal e As EventArgs)
If Not Page.IsPostBack Then
If Not Session("CurrentPage") Is Nothing AndAlso
Session("CurrentPage") <= GridView1.PageCount Then
GridView1.PageIndex = Session("CurrentPage")
End If
End If
End Sub
奇妙なことに、上記の 2 番目の IF でブレークポイントを指定して pageCount にカーソルを合わせると、0 であると表示されます。その後、ウォッチ ウィンドウに移動して (もう一度 0) を確認すると、コードに戻ってもう一度カーソルを合わせます。それは2です(そうあるべきです)!次に、ブレーク ポイントを超えて続行すると、ページが 2 ページ目に表示されます。しかし、これが本当に奇妙なところです。ブレークポイントを削除して実行すると、最終的にページ 1 になります。そのためPageCount
、ブレークポイントを設定して具体的に調べない限り、更新されていないようです。誰かがこの動作とそれを回避する方法を説明していますか?!
アップデート
問題の変数の値の写真を次に示します。IF
少し前に PageCount が 0 だったため、ステートメントに入力されなかったため、PageIndex が更新されていないことがわかります。これに困惑しているのは私だけではありません:/
変数値のイメージ: