手机
当前位置:查字典教程网 >编程开发 >asp.net教程 >ASP.NET程序中用Repeater实现分页
ASP.NET程序中用Repeater实现分页
摘要:一、程序功能:为Repeater实现分页二、窗体设计:1、新建ASP.NETWeb应用程序,命名为Repeater2,保存路径为http:/...

一、程序功能:

为Repeater实现分页

二、窗体设计:

1、新建ASP.NET Web应用程序,命名为Repeater2,保存路径为http://192.168.0.1/Repeater2(注:我机子上的网站的IP是192.168.0.1的主目录是D:web文件夹)然后点击确定。

2、向窗体添加一个3行一列的表,向表的第一行中添加一个Repeater控件,向表的第二行中添加两个Label控件向表的第三行中添加四个Button按钮。

3、切换到HTML代码窗口,在<asp:Repeater id="Repeater1" runat="server">和</asp:Repeater>之间添加以下代码:

<ItemTemplate>

<table id="Table2" width="498">

<tr>

<td><%#DataBinder.Eval(Container,"DataItem.employeeid")%></td>

<td><%#DataBinder.Eval(Container,"DataItem.lastname")%></td>

</tr>

</table>

</ItemTemplate>

三、代码设计:

Imports System.Data.SqlClient

Public Class WebForm1

Inherits System.Web.UI.Page

Dim scon As New SqlConnection("server=localhost;database=northwind;uid=sa;pwd=123")

Dim sDA As SqlDataAdapter

Dim ds As DataSet

Dim currentPage As Integer '记录着目前在哪一页上

Dim maxPage As Integer '总共有多少页

Const rowCount As Integer = 3 '一页有多少行

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(0).Rows.Count

Catch ex As Exception

rowSum = 0

End Try

'如果没有数据,退出过程

If rowSum = 0 Then Exit Sub

'计算出浏览数据的总页数

If rowSum Mod rowCount > 0 Then

'有余数要加1

maxPage = rowSum rowCount + 1

Else

'正好除尽

maxPage = rowSum rowCount

End If

currentPage = 1

'调用绑定数据过程

readpage(currentPage)

BindData()

Label2.Text = maxPage

'首页和上一页按钮不可见

Button1.Visible = False

Button2.Visible = False

End If

End Sub

'创建一个绑定数据的过程

Sub BindData()

Repeater1.DataSource = ds

Repeater1.DataBind()

Label1.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 - 1) * rowCount, rowCount, "employees")

End Sub

'首页按钮

Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click

currentPage = 1

'调用填充数据集过程

readpage(currentPage)

'绑定数据

BindData()

'设置首页、第一页按钮不可见,显示下一页尾页按钮

Button1.Visible = False

Button2.Visible = False

Button3.Visible = True

Button4.Visible = True

End Sub

'上一页按钮

Private Sub Button2_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button2.Click

'如果现在页是第二页,设置首页和上一页按钮不可见

If Label1.Text > 2 Then

Button3.Visible = True

Button4.Visible = True

Else

Button1.Visible = False

Button2.Visible = False

Button3.Visible = True

Button4.Visible = True

End If

currentPage = Label1.Text - 1

readpage(currentPage)

BindData()

End Sub

'下一页按钮

Private Sub Button3_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button3.Click

'如果现在页倒数第二页,设置最后页和下一页按钮不可见

If Label1.Text < Label2.Text - 1 Then

Button1.Visible = True

Button2.Visible = True

Else

Button1.Visible = True

Button2.Visible = True

Button3.Visible = False

Button4.Visible = False

End If

currentPage = Label1.Text + 1

readpage(currentPage)

BindData()

End Sub

'尾页按钮

Private Sub Button4_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button4.Click

'设置当前页为最大页数

currentPage = Label2.Text

readpage(currentPage)

BindData()

Button1.Visible = True

Button2.Visible = True

Button3.Visible = False

Button4.Visible = False

End Sub

End Class

窗体界面如下所示:

ASP.NET程序中用Repeater实现分页1

【ASP.NET程序中用Repeater实现分页】相关文章:

ASP.NET中实现模板页

ASP.NET中用healthMonitor属性用法

浅谈VS中的DataPager分页

在.NET中利用委托实现窗体间通信

ASP.NET 2.0 中的创建母版页

ASP.NET中为DataGrid添加合计字段

ASP.NET检测到不安全 Request.Form 值解决方案汇总

Repeater控件与PagedDataSource结合实现分页功能

asp.net Repeater 自递增

ASP.NET技巧:做个DataList可分页的数据源

精品推荐
分类导航