个性化的分页实例

来源:互联网 发布:电气自动化技术知乎 编辑:程序博客网 时间:2024/05/28 11:49
导读:
  注意:本文的源程序代码用VB和C#同时进行说明。
  我们所知道的分页程序一般都是简单地通过修改DataGrid的属性来实现分页,这样做的最大好处就是简单,用户根本不用知道分页是如何产生的。但它同样有缺点,不能按照用户的需要产生相应的样式。要得到个性化的分页,就必须自己动手编写代码。下面来看一个功能更为强大的分页实例——个性化的分页功能实现。
  完整的程序代码如下:
  <%@Page Language="VB"%>
  <%@Import Namespace="System.Data"%>
  <%@Import Namespace="System.Data.OleDb"%>
  
  
  
  

个性化的分页实例


  

   AllowPaging="True"
PageSize="5"
PagerStyle-Mode="NumericPages"
PagerStyle-HorizontalAlign="Right"
OnPageIndexChanged="Grid1_Page"
BorderColor="black"
BorderWidth="1"
GridLines="Both"
CellPadding="3"
CellSpacing="0"
Font-Name="Verdana"
Font-Size="8pt"
HeaderStyle-BackColor="#aaaadd"
AlternatingItemStyle-BackColor="#eeeeee"
AutoGenerateColumns="true">  AllowPaging="True"
  PageSize="5"
  PagerStyle-Mode="NumericPages"
  PagerStyle-HorizontalAlign="Right"
  OnPageIndexChanged="Grid1_Page"
  BorderColor="black"
  BorderWidth="1"
  GridLines="Both"
  CellPadding="3"
  CellSpacing="0"
  Font-Name="Verdana"
  Font-Size="8pt"
  HeaderStyle-BackColor="#aaaadd"
  AlternatingItemStyle-BackColor="#eeeeee"
  AutoGenerateColumns="true">
  

  


   Text="首页"
CommandArgument="0"
ForeColor="navy"
Font-Name="verdana" Font-size="8pt"
OnClick="PagerButtonClick"/>  Text="首页"
  CommandArgument="0"
  ForeColor="navy"
  Font-Name="verdana" Font-size="8pt"
  OnClick="PagerButtonClick"/>
  
   Text="前页"
CommandArgument="prev"
ForeColor="navy"
Font-Name="verdana" Font-size="8pt"
OnClick="PagerButtonClick"/>  Text="前页"
  CommandArgument="prev"
  ForeColor="navy"
  Font-Name="verdana" Font-size="8pt"
  OnClick="PagerButtonClick"/>
  
   Text="后页"
CommandArgument="next"
ForeColor="navy"
Font-Name="verdana" Font-size="8pt"
OnClick="PagerButtonClick"/>  Text="后页"
  CommandArgument="next"
  ForeColor="navy"
  Font-Name="verdana" Font-size="8pt"
  OnClick="PagerButtonClick"/>
  
   Text="末页"
CommandArgument="last"
ForeColor="navy"
Font-Name="verdana" Font-size="8pt"
OnClick="PagerButtonClick"/>  Text="末页"
  CommandArgument="last"
  ForeColor="navy"
  Font-Name="verdana" Font-size="8pt"
  OnClick="PagerButtonClick"/>
  


   Text="显示内置的页数"
Font-Name="Verdana"
Font-Size="8pt"
AutoPostBack="true"/>  Text="显示内置的页数"
  Font-Name="Verdana"
  Font-Size="8pt"
  AutoPostBack="true"/>
  


  
  

  

  

  


  
  
  上面程序中的DataGrid控制元件的布置标记并没有什么特别之处,通过布置4个LinkButton控制元件来实现个性化分页,例如:
   Text="首页"
CommandArgument="0"
ForeColor="navy"
Font-Name="verdana" Font-size="8pt"
OnClick="PagerButtonClick"/>  Text="首页"
  CommandArgument="0"
  ForeColor="navy"
  Font-Name="verdana" Font-size="8pt"
  OnClick="PagerButtonClick"/>
  可以看出LinkButton的OnClick触发的是PagerButtonClick事件,程序代码如下:
  Sub PagerButtonClick(Sender As Object,e As EventArgs)
  '获得LinkButton的参数值
  Dim arg As String =CType(Sender,LinkButton).CommandArgument
  Select Case arg
  case ("next")
  if (Grid1.CurrentPageIndex <(Grid1.PageCount - 1)) then
  Grid1.CurrentPageIndex +=1
  end if
  case ("prev")
  if (Grid1.CurrentPageIndex > 0) then
  Grid1.CurrentPageIndex -=1
  end if
  case ("last")
  Grid1.CurrentPageIndex = (Grid1.PageCount - 1)
  case else
  '本页值
  Grid1.CurrentPageIndex = CInt(arg)
  End Select
  BindGrid
  End Sub
  在这个事件处理程序之中,取得LinkButton的参数值,求出Grid1的当前页面索引值。操作的也只是DataGrid的CurrentPageIndex属性。如果CurrentPageIndex小于Pag

本文转自
http://study.qqcf.com/web/224/24042.htm