當(dāng)前位置: 首頁(yè)IT技術(shù) → 關(guān)于DataGrid 分頁(yè)問(wèn)題的小經(jīng)驗(yàn)分享

關(guān)于DataGrid 分頁(yè)問(wèn)題的小經(jīng)驗(yàn)分享

更多

本文提供的是作者的一個(gè)小經(jīng)驗(yàn)分享,是關(guān)于DataGrid 分頁(yè)問(wèn)題,希望能給大家?guī)?lái)幫助和啟發(fā)。

最近做網(wǎng)站遇到了一個(gè)奇怪的問(wèn)題,在進(jìn)行DataGrid進(jìn)行分頁(yè)時(shí),無(wú)法響應(yīng) PageIndExchanged 事件 。
  我也查閱了很多關(guān)于這方面的文章,可是還是沒(méi)有得到解決方案。 在和別人的探討中發(fā)現(xiàn)了癥結(jié)所在
  
  首先,我先將代碼貼過(guò)來(lái):
  
  下面是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 = (綁定你的數(shù)據(jù)源)
  
   SearchGrid.DataBind()
  
   End Sub
  
  
  對(duì)與上面的代碼,第一次加載頁(yè)面都可以得到正確的顯示結(jié)果和頁(yè)數(shù),但是切換頁(yè)面時(shí)不能響應(yīng)分頁(yè)事件
  
  經(jīng)過(guò)跟蹤程序發(fā)現(xiàn)切換頁(yè)面每次都要調(diào)用PageLoad , 我把DataBind移出Is notpostback后,分頁(yè)可以正常
  
  說(shuō)明每次在回送頁(yè)面時(shí)都要重新給DataGrid加載數(shù)據(jù),隨即考慮到DataGrid設(shè)置了EnableViewState為False
  
  DataGrid數(shù)據(jù)沒(méi)有保留下來(lái),導(dǎo)致DataGrid只有在每次加載都重新綁定才能實(shí)現(xiàn)保持狀態(tài)而正常分頁(yè)。
  
   因此將EnableVIewState設(shè)置為T(mén)rue ,問(wèn)題解決。

熱門(mén)評(píng)論
最新評(píng)論
發(fā)表評(píng)論 查看所有評(píng)論(0)
昵稱(chēng):
表情: 高興 可 汗 我不要 害羞 好 下下下 送花 屎 親親
字?jǐn)?shù): 0/500 (您的評(píng)論需要經(jīng)過(guò)審核才能顯示)