熱點推薦:
您现在的位置: 電腦知識網 >> 編程 >> .NET編程 >> 正文

ASP.NET程序中用Repeater實現分頁

2013-11-13 09:41:28  來源: .NET編程 

  程序功能
  為Repeater實現分頁
  
  窗體設計
  新建ASPNET Web應用程序命名為Repeater保存路徑為(注我機子上的網站的IP是的主目錄是D:\web文件夾)然後點擊確定
  
  向窗體添加一個行一列的表向表的第一行中添加一個Repeater控件向表的第二行中添加兩個Label控件向表的第三行中添加四個Button按鈕
  
  切換到HTML代碼窗口在<asp:Repeater id=Repeater runat=server>和</asp:Repeater>之間添加以下代碼
  
  <ItemTemplate>
  <table id=Table width=
  <tr>
  <td><%#DataBinderEval(ContainerDataItememployeeid)%></td>
  <td><%#DataBinderEval(ContainerDataItemlastname)%></td>
  </tr>
  </table>
  </ItemTemplate>
  
  代碼設計
  Imports SystemDataSqlClient
  Public Class WebForm
  Inherits SystemWebUIPage
  
  Dim scon As New SqlConnection(server=localhost;database=northwind;uid=sa;pwd=)
  Dim sDA As SqlDataAdapter
  Dim ds As DataSet
  Dim currentPage As Integer 記錄著目前在哪一頁上
  Dim maxPage As Integer 總共有多少頁
  Const rowCount As Integer = 一頁有多少行
  Dim rowSum As Integer 總共有多少行
  
  窗體代碼省略
  
  Private Sub Page_Load(ByVal sender As SystemObject ByVal e As SystemEventArgs) Handles MyBaseLoad
  
  If Not PageIsPostBack Then
  sDA = New SqlDataAdapter(select employeeid lastname from employees order by employeeid scon)
  ds = New DataSet
  Try
  sDAFill(ds employees)
  獲取總共有多少行
  rowSum = dsTables()RowsCount
  Catch ex As Exception
  rowSum =
  End Try
  
  如果沒有數據退出過程
  If rowSum = Then Exit Sub
  計算出浏覽數據的總頁數
  If rowSum Mod rowCount > Then
  有余數要加
  maxPage = rowSum \ rowCount +
  Else
  正好除盡
  maxPage = rowSum \ rowCount
  End If
  
  currentPage =
  調用綁定數據過程
  readpage(currentPage)
  BindData()
  LabelText = maxPage
  首頁和上一頁按鈕不可見
  ButtonVisible = False
  ButtonVisible = False
  End If
  End Sub
  
  創建一個綁定數據的過程
  Sub BindData()
  RepeaterDataSource = ds
  RepeaterDataBind()
  LabelText = currentPage
  End Sub
  
  創建一個填充數據集的過程
  Sub readpage(ByVal n As Integer)
  sDA = New SqlDataAdapter(select employeeid lastname from employees order by employeeid scon)
  ds = New DataSet
  dsClear()
  sDAFill(ds (n ) * rowCount rowCount employees)
  End Sub
  
  首頁按鈕
  Private Sub Button_Click(ByVal sender As SystemObject ByVal e As SystemEventArgs) Handles ButtonClick
  
  currentPage =
  調用填充數據集過程
  readpage(currentPage)
  綁定數據
  BindData()
  設置首頁第一頁按鈕不可見顯示下一頁尾頁按鈕
  ButtonVisible = False
  ButtonVisible = False
  ButtonVisible = True
  ButtonVisible = True
  
  End Sub
  
  上一頁按鈕
  Private Sub Button_Click(ByVal sender As SystemObject ByVal e As SystemEventArgs) Handles ButtonClick
  如果現在頁是第二頁設置首頁和上一頁按鈕不可見
  If LabelText > Then
  ButtonVisible = True
  ButtonVisible = True
  Else
  ButtonVisible = False
  ButtonVisible = False
  ButtonVisible = True
  ButtonVisible = True
  End If
  currentPage = LabelText
  readpage(currentPage)
  BindData()
  End Sub
  
  下一頁按鈕
  Private Sub Button_Click(ByVal sender As SystemObject ByVal e As SystemEventArgs) Handles ButtonClick
  如果現在頁倒數第二頁設置最後頁和下一頁按鈕不可見
  If LabelText < LabelText Then
  ButtonVisible = True
  ButtonVisible = True
  Else
  ButtonVisible = True
  ButtonVisible = True
  ButtonVisible = False
  ButtonVisible = False
  End If
  currentPage = LabelText +
  readpage(currentPage)
  BindData()
  End Sub
  
  尾頁按鈕
  Private Sub Button_Click(ByVal sender As SystemObject ByVal e As SystemEventArgs) Handles ButtonClick
  設置當前頁為最大頁數
  currentPage = LabelText
  readpage(currentPage)
  BindData()
  ButtonVisible = True
  ButtonVisible = True
  ButtonVisible = False
  ButtonVisible = False
  End Sub
  End Class
  
  窗體界面如下所示
  

From:http://tw.wingwit.com/Article/program/net/201311/11338.html
    推薦文章
    Copyright © 2005-2013 電腦知識網 Computer Knowledge   All rights reserved.