一程序功能 為Repeater實現分頁
二窗體設計 新建ASP
NET Web應用程序
命名為Repeater
保存路徑為(注
我機子上的網站的IP是
的主目錄是D:\web文件夾)然後點擊確定
向窗體添加一個
行一列的表
向表的第一行中添加一個Repeater控件
向表的第二行中添加兩個Label控件向表的第三行中添加四個Button按鈕
切換到HTML代碼窗口
在<asp:Repeater id=
Repeater
runat=
server
>和</asp:Repeater>之間添加以下代碼
<ItemTemplate>
<table id=
Table
width=
>
<tr>
<td><%#DataBinder
Eval(Container
DataItem
employeeid
)%></td>
<td><%#DataBinder
Eval(Container
DataItem
lastname
)%></td>
</tr>
</table>
</ItemTemplate>
三代碼設計 Imports System
Data
SqlClient
Public Class WebForm
Inherits System
Web
UI
Page
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 System
Object
ByVal e As System
EventArgs) Handles MyBase
Load
If Not Page
IsPostBack Then
sDA = New SqlDataAdapter(
select employeeid
lastname from employees order by employeeid
scon)
ds = New DataSet
Try
sDA
Fill(ds
employees
)
獲取總共有多少行
rowSum = ds
Tables(
)
Rows
Count
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()
Label
Text = maxPage
首頁和上一頁按鈕不可見
Button
Visible = False
Button
Visible = False
End If
End Sub
創建一個綁定數據的過程
Sub BindData()
Repeater
DataSource = ds
Repeater
DataBind()
Label
Text = currentPage
End Sub
創建一個填充數據集的過程
Sub readpage(ByVal n As Integer)
sDA = New SqlDataAdapter(
select employeeid
lastname from employees order by employeeid
scon)
ds = New DataSet
ds
Clear()
sDA
Fill(ds
(n
) * rowCount
rowCount
employees
)
End Sub
首頁按鈕
Private Sub Button
_Click(ByVal sender As System
Object
ByVal e As System
EventArgs) Handles Button
Click
currentPage =
調用填充數據集過程
readpage(currentPage)
綁定數據
BindData()
設置首頁
第一頁按鈕不可見
顯示下一頁尾頁按鈕
Button
Visible = False
Button
Visible = False
Button
Visible = True
Button
Visible = True
End Sub
上一頁按鈕
Private Sub Button
_Click(ByVal sender As System
Object
ByVal e As System
EventArgs) Handles Button
Click
如果現在頁是第二頁
設置首頁和上一頁按鈕不可見
If Label
Text >
Then
Button
Visible = True
Button
Visible = True
Else
Button
Visible = False
Button
Visible = False
Button
Visible = True
Button
Visible = True
End If
currentPage = Label
Text
readpage(currentPage)
BindData()
End Sub
下一頁按鈕
Private Sub Button
_Click(ByVal sender As System
Object
ByVal e As System
EventArgs) Handles Button
Click
如果現在頁倒數第二頁
設置最後頁和下一頁按鈕不可見
If Label
Text < Label
Text
Then
Button
Visible = True
Button
Visible = True
Else
Button
Visible = True
Button
Visible = True
Button
Visible = False
Button
Visible = False
End If
currentPage = Label
Text +
readpage(currentPage)
BindData()
End Sub
尾頁按鈕
Private Sub Button
_Click(ByVal sender As System
Object
ByVal e As System
EventArgs) Handles Button
Click
設置當前頁為最大頁數
currentPage = Label
Text
readpage(currentPage)
BindData()
Button
Visible = True
Button
Visible = True
Button
Visible = False
Button
Visible = False
End Sub
End Class
窗體界面如下所示
From:http://tw.wingwit.com/Article/program/net/201311/11338.html