真的很奇怪......所以我试图将我的gridview的页面索引保存在会话变量中,然后在用户导航回gridView时重置索引。下面是我的代码;
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
奇怪的是,当我在上面的第二个 IF 上断点并将鼠标悬停在 pageCount 上时,它说它是 0。如果我然后进入我的监视窗口并查看它(再次为 0),然后返回我的代码并再次悬停它是 2(应该是)!然后我可以继续越过断点,页面将按原样显示在第 2 页上。然而,这就是它变得非常奇怪的地方,如果我删除断点并运行它,我最终会在第 1 页!所以它好像PageCount
没有更新,除非我在它上面放了一个断点并专门查看它。任何人都解释了这种行为以及如何解决它?!
更新
这是相关变量值的图片。您可以看到 PageIndex 没有更新,因为它从未进入IF
语句,因为之前的 PageCount 为 0!我不能是唯一一个被这个难住的人:/
变量值的图像: