DataGrid 分页问题

2018-09-06 11:23

阅读:455

  最近做网站遇到了一个奇怪的问题,在进行DataGrid进行分页时,无法响应PageIndexChanged 事件 。

  我也查阅了很多关于这方面的文章,可是还是没有得到解决方案。 在和别人的探讨中发现了症结所在

  首先,我先将代码贴过来:

  下面是DataGird控件的HTML代码(不包含字段绑定)

  <asp:datagrid id=SearchGrid runat=server width=100%autogeneratecolumns=False EnableViewState=trueAllowPaging=True PageSize=3 PagerStyle-Mode=NumericPages PagerStyle-HorizontalAlign=Right PagerStyle-pagebuttoncount=5 onpageindexchanged=SearchGrid_PageIChanged>

  下面是后代码:

  Private Sub Page_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
If Not IsPostBack Then
BindGrid()
End If
End Sub

  public Sub SearchGrid_PageIChanged(ByVal s As Object, ByVal e As DataGridPageChangedEventArgs)
SearchGrid.CurrentPageIndex = e.NewPageIndex
BindGrid()
End Sub

  Public Sub BindGrid()
SearchGrid.DataSource =(绑定你的数据源)

   SearchGrid.DataBind()

  End Sub

  对与上面的代码,第一次加载页面都可以得到正确的显示结果和页数,但是切换页面时不能响应分页事件

  经过跟踪程序发现切换页面每次都要调用PageLoad , 我把DataBind移出Is notpostback后,分页可以正常

  说明每次在回送页面时都要重新给DataGrid加载数据,随即考虑到DataGrid设置了EnableViewState为False

  DataGrid数据没有保留下来,导致DataGrid只有在每次加载都重新绑定才能实现保持状态而正常分页。

   因此将EnableVIewState设置为True ,问题解决。

  


评论


亲,登录后才可以留言!