ASP.NET程序中用Repeater实现分页_自学过程

一、程序功能:
  为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" style="FONT-SIZE: x-small" 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
  
  窗体界面如下所示:
  

时间: 2024-07-30 22:07:26

ASP.NET程序中用Repeater实现分页_自学过程的相关文章

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

asp.net|程序|分页 一.程序功能:为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.NET 2.0中操作数据之四十一:DataList和Repeater数据分页_自学过程

导言 分页和排序是显示数据时经常用到的功能.比如,在一个在线书店里搜索关于ASP.NET 的书的时候,可能结果会是成百上千,而每页只列出十条.而且结果可以根据title(书名),price(价格),page count(页数),author name(作者)等来排序.我们在分页和排序报表数据 里已经讨论过, GridView, DetailsView, 和FormView 都有内置的分页功能,仅仅只需要勾一个checkbox就可以开启.GridView 还支持内置的排序. 不幸的是,DataLi

在ASP.NET 2.0中操作数据之三十:格式化DataList和Repeater的数据_自学过程

导言 在前面的教程里我们学习了DataList提供了一些风格样式的属性.而且我们还学习了如何定义HeadStyle, ItemStyle, AlternatingItemStyle, 和SelectedItemStyle等属性的默认CSS.除了这四个属性外,DataList还提供了其它属性,比如Font, ForeColor, BackColor, 和BorderWidth.而Repeater没有提供任何这样的属性.如果你需要用Reperter来实现这些效果,你就需要在templates里直接写

让Asp.NET的DataGrid可排序、可选择、可分页_自学过程

DataGrid是Asp.NET中的一个重要的控件,经常我们都将DataGrid做成可分页的和可排序的,有时还需要加上选择功能.这些都是经常需要用到的方法,其实是比较简单的. 设计思路: 为了方便起见,我们连接SQL Server 2000的NorthWind数据库的Orders表,从数据库里得到此表的数据视图.利用DataGrid的SortCommand事件实现排序.用一个模板列加上CheckBox控件实现选择.可用DataGrid的属性生成器的"分页"选项或者自己修改HTML实现分

在ASP.NET 2.0中操作数据之五十八:在程序启动阶段缓存数据_自学过程

导言: 前面2章考察了在表现层和缓存层缓存数据.在第56章,我们探讨了在表现层设置ObjectDataSource的相关cache属性来缓存数据.在第57章,我们探讨了创建一个单独的分开的缓存层.这2章都是采用"应激装载"(reactive loading)的模式来缓存数据.该模式下,每次请求数据时,系统先检查其是否在内存,如果没有,则从数据源--比如数据库,来获取数据,然后将其存储在内存里.该模式的优势在于执行起来很容易:而缺点之一在于应"请求"(requests

如何在DataGrid控件中实现自定义分页_自学过程

如何在DataGrid控件中实现自定义分页      在一般情况下,DataGrid控件每次实现翻页操作时,都会将数据源中的数据重新调用一次,当数据中 数据很多时,这样做就会很浪费系统资源和降低程序的执行效率.这时候我们一般通过自定义分页来解 决这个问题.     DataGrid控件的AllowCustomPaging属性用来获取或设置DataGrid控件是否允许自定义分 页;VirtualItemCoun属性用来获取或设置在使用自定义分页时DataGrid中实际的项数.要实现自定义分 页,必

在ASP.NET中调用存储过程方法新解_自学过程

在使用.NET的过程中,数据库访问是一个很重要的部分,特别是在B/S系统的构建过程中,数据库操作几乎成为了一个必不可少的操作.调用存储过程实现数据库操作使很多程序员使用的方法,而且大多数的程序员都是能使用存储过程就使用存储过程,很少直接使用SQL语句,所以存储过程是很有用而且很重要的. 存储过程简介 简单的说,存储过程是由一些SQL语句和控制语句组成的被封装起来的过程,它驻留在数据库中,可以被客户应用程序调用,也可以从另一个过程或触发器调用.它的参数可以被传递和返回.与应用程序中的函数过程类似,

在ASP.NET 2.0中操作数据之二十九:用DataList和Repeater来显示数据_自学过程

导言 在之前的28篇教程的例子里,如果我们需要显示某个数据源的多条记录,我们使用GridView .GridView 的一行表示数据源的一条记录,列表示一个字段.虽然GridView 用来显示数据,分页,排序,编辑,删除非常的方便,但是有点臃肿.而且GridView 结构的标记是固定的-它包含一个带有<tr>和<td>的HTML <table>标记. 为了在显示多条记录时,有更好的自定义功能,ASP.NET 2.0提供了DataList 和Repeater (ASP.N

在ASP.NET 2.0中操作数据之四十二:DataList和Repeater数据排序(一)_自学过程

导言 DataList和Repeater数据分页里我们学习了如何在DataList里添加分页功能.我们在ProductsBLL类里创建了一个名为GetProductsAsPagedDataSource的方法,它返回一个PagedDataSource对象.当绑定到DataList或Repeater时,他们将只显示请求页的数据.这个技术和GridView,DetailsView,FormView的内置分页功能原理差不多. 除了分页外,GridView还提供了内置的排序功能,而DataList和Rep