关闭

简单的Repeater分页代码

标签: integerserverdatasetaspobjectimport
2473人阅读 评论(1) 收藏 举报
分类:

practice_1

--------------------------------------------

<%@ Import Namespace="System.Data" %>
<%@ Import Namespace="System.Data.OleDb" %>
<script language="vb" runat="server">
 
 '定义bindlist子程序,调用pageno(页面位置)参数
  sub BindList(PageNo As Integer)
  
   '使用connection对象打开数据连接
    Dim ConnString As String = "Provider=Microsoft.Jet.OLEDB.4.0;" & _
                               "Data Source=" & Server.MapPath("db/music.mdb")
   
 '定义sql
 Dim strSQL As String = "Select * From 唱片,风格 where 唱片.风格号码 = 风格.风格号码 Order By '添加时间' Desc"
  
  
    '创建dataadapter对象
 Dim objCmd As New OleDbDataAdapter(strSQL, ConnString)
   
 
 '创建dataset对象
 Dim DS As New DataSet()
   
 '调用dataadapter对象的fill()方法讲选取的数据置入dataset对象。
 objCmd.Fill(DS, "唱片")
  
    '声明mytable 变量为 datatable对象,并将ds.tables("歌曲")赋值给 mytable变量。
    Dim myTable As DataTable = DS.Tables("唱片")   
 
 '定义每页面显示2条记录。
 dim pagesize as integer = 2
 
 '显示留言的总条数
 dim totalrecord as integer = mytable.rows.count
 showtotalrecord.text = totalrecord
 
 '显示流言总页数totalrecord为流言总条数
 dim totalpage as integer
 if totalrecord < pagesize then
   totalpage = 1
 else
   if totalrecord mod pagesize <> 0 then
     totalpage = totalrecord / pagesize + 1
   else
     totalpage = totalrecord / pagesize
   end if
 end if
  ShowTotalPage.Text = TotalPage
 
  '将当前页码赋给Showpagenumber控件,以显示当前页数
  Showpagenumber.text = pageno
   
    '创建 tempTable 数据表,其结构与mytable相同,tempTable 数据表
    '保存的数据会连接到 Repeater 控件,以显示留言内容。
    Dim tempTable As DataTable = myTable.Clone()
    Dim I, J As Integer
    For I = (PageNo -1) * PageSize To PageNo * PageSize - 1
      If I > myTable.Rows.Count -1 Then Exit For
      Dim newRow As DataRow = tempTable.NewRow()
      For J = 0 To myTable.Columns.Count -1
        newRow(myTable.Columns(J).ColumnName) = myTable.Rows(I).Item(J)
      Next
      tempTable.Rows.Add(newRow)
    Next
    myRepeater.DataSource = tempTable
    myRepeater.DataBind()
  End Sub

 '此过程用来判断是否应该显示,首页等按钮。
sub showwhatbutton()
 if Showpagenumber.text = 1 then
   firstpage.visible = false
   prepage.visible = false
  else
   firstpage.visible = true
   prepage.visible = true 
  end if
 
  if Showpagenumber.text = showtotalpage.text  then
   lastpage.visible = false
   nextpage.visible = false
  else
   lastpage.visible = true
   nextpage.visible = true 
  end if
end sub
 
 
 '此程序用来创建快速换页菜单
  Sub PageListItem()
    Dim I As Integer
    PageList.Items.Clear()
    For I = 0 To ShowTotalPage.Text -1
      PageList.Items.Add("第 " & I + 1 & " 页")
    Next
  End Sub
 
  '页面第一次加载时执行此程序,调用bindlist和pagelistitem子程序并赋值
  Sub Page_Init(sender As Object, e As Eventargs)
    BindList(1)
    PageListItem()
 showwhatbutton()
  End Sub
 
 '响应下拉菜单 PageList 命令。
  Sub PageList_Change(sender As Object, e As EventArgs)
    BindList(PageList.SelectedIndex + 1)
 showwhatbutton()
  End Sub

'此过程会根据用户点取的按钮来决定应该显示哪个分页的数据
  sub pagechange(sender as object, e as commandeventargs)
    select case e.commandargument
   case "nextpage"
    BindList( Showpagenumber.text + 1)
   case "prepage"
    BindList( Showpagenumber.text - 1)
   case "firstpage"
    BindList( 1 )
   case "lastpage"
   BindList( showtotalpage.text - 1)
 
   '当用户在文本框里输入 数字的时候执行下面代码。
   '如果用户输入的数字大于总页数时,显示最后一页。如果小于首页时,显示首页。
   case "pagenumber"
     if pagenumber.text > showtotalpage.text  then
  pagenumber.text = showtotalpage.text
  bindlist(pagenumber.text)
  else if pagenumber.text < 1 then
  pagenumber.text = 1
     bindlist(pagenumber.text)
  else
  bindlist(pagenumber.text)
  end if
  end select
     showwhatbutton()
  end sub
</script>

<Html>
  <Body>
    <Form Runat="Server">
      收录专辑总数:<Asp:Label Runat="Server" Id="ShowTotalrecord" /><br>
   目前位于第<Asp:Label Runat="Server" Id="Showpagenumber" />页<br>
      <asp:linkbutton runat="server" ID="firstpage" OnCommand="pagechange" Text="首页" CommandArgument="firstpage"/>
   <asp:linkbutton runat="server" ID="lastpage" OnCommand="pagechange" Text="尾页" CommandArgument="lastpage"/>
   <asp:linkbutton runat="server" ID="prepage" OnCommand="pagechange" Text="上一页" CommandArgument="prepage"/>
   <asp:linkbutton runat="server" ID="nextpage" OnCommand="pagechange" Text="下一页" CommandArgument="nextpage"/>
    <br>
  
   总页数:<Asp:Label Runat="Server" Id="showtotalpage" /><br>
   转到:
   <asp:dropdownlist runat="Server" ID="PageList" AutoPostBack="True" OnSelectedIndexChanged="PageList_Change" />
  <asp:textbox runat="server" id="pagenumber" ontextchange="change"/>
   <asp:button runat="server" ID="numberbutton" OnCommand="pagechange" Text="GO" CommandArgument="pagenumber"/>
   <Asp:Repeater Runat="Server" Id="myRepeater">
        <ItemTemplate>          <Br>
          <Br>
          <table border="0" cellspacing="0" cellpadding="0">
            <tr>
              <td width="147" rowspan="6"> <div align="center"><Img Src="<%# Container.DataItem("唱片图片") %>"></div></td>
              <td width="362">&nbsp;</td>
            </tr>
            <tr>
              <td>乐队:<%# Container.DataItem("乐队名") %></td>
            </tr>
            <tr>
              <td>唱片:<%# Container.DataItem("唱片名") %></td>
            </tr>
            <tr>
              <td>加入时间:<%# Container.DataItem("添加时间")%> </td>
            </tr>
            <tr>
              <td>推荐指数:<%# Container.DataItem("欣赏指数")%></td>
            </tr>
            <tr>
              <td height="41">唱片风格:<%# Container.DataItem("风格名")%></td>
            </tr>
          </table>
          <Br>
        </ItemTemplate>
      </Asp:Repeater>
    </Form>
  </Body>
</Html>

---------------------------------------------------------------------------------------------------

practice_2

<%@ Import Namespace="System.Data" %>
<%@ Import Namespace="System.Data.OleDb" %>
<script language="vb" runat="server">
 
 '定义bindlist子程序,调用pageno(页面位置)参数
  sub BindList(PageNo As Integer)
  
   '使用connection对象打开数据连接
    Dim ConnString As String = "Provider=Microsoft.Jet.OLEDB.4.0;" & _
                               "Data Source=" & Server.MapPath("db/music.mdb")
   
 '定义sql
 Dim strSQL As String = "Select * From 唱片,风格 where 唱片.风格号码 = 风格.风格号码 Order By '添加时间' Desc"
  
  
    '创建dataadapter对象
 Dim objCmd As New OleDbDataAdapter(strSQL, ConnString)
   
 
 '创建dataset对象
 Dim DS As New DataSet()
   
 '调用dataadapter对象的fill()方法讲选取的数据置入dataset对象。
 objCmd.Fill(DS, "唱片")
  
    '声明mytable 变量为 datatable对象,并将ds.tables("歌曲")赋值给 mytable变量。
    Dim myTable As DataTable = DS.Tables("唱片")   
 dim pagesize as integer = 2
 
 '显示留言的总条数
 dim totalrecord as integer = mytable.rows.count
 showtotalrecord.text = totalrecord
 
 '显示流言总页数totalrecord为流言总条数
 dim totalpage as integer
 if totalrecord < pagesize then
   totalpage = 1
 else
   if totalrecord mod pagesize <> 0 then
     totalpage = totalrecord / pagesize + 1
   else
     totalpage = totalrecord / pagesize
   end if
 end if
  ShowTotalPage.Text = TotalPage
   
    '创建 tempTable 数据表,其结构与mytable相同,tempTable 数据表
    '保存的数据会连接到 Repeater 控件,以显示留言内容。
 Dim tempTable As DataTable = myTable.Clone()
    Dim I, J As Integer
    For I = (PageNo -1) * PageSize To PageNo * PageSize - 1
      If I > myTable.Rows.Count -1 Then Exit For
      Dim newRow As DataRow = tempTable.NewRow()
      For J = 0 To myTable.Columns.Count -1
        newRow(myTable.Columns(J).ColumnName) = myTable.Rows(I).Item(J)
      Next
      tempTable.Rows.Add(newRow)
    Next
    myRepeater.DataSource = tempTable
    myRepeater.DataBind()
  End Sub
 

 '此过程用来判断是否应该显示,首页等按钮。
sub showwhatbutton()
 if pagelist.selectedindex= 0 then
   firstpage.visible = false
   prepage.visible = false
  else
   firstpage.visible = true
   prepage.visible = true 
  end if
 
  if pagelist.selectedindex = pagelist.items.count - 1 then
   lastpage.visible = false
   nextpage.visible = false
  else
   lastpage.visible = true
   nextpage.visible = true 
  end if
end sub 
 
 '此程序用来创建快速换页菜单
  Sub PageListItem()
    Dim I As Integer
    PageList.Items.Clear()
    For I = 0 To ShowTotalPage.Text -1
      PageList.Items.Add("第 " & I + 1 & " 页")
    Next
  End Sub
  '页面第一次加载时执行此程序,调用bindlist和pagelistitem子程序并赋值
  Sub Page_Init(sender As Object, e As Eventargs)
    BindList(1)
    PageListItem()
 showwhatbutton()
  End Sub
 
 '响应下拉菜单 PageList 命令。
  Sub PageList_Change(sender As Object, e As EventArgs)
    BindList(PageList.SelectedIndex + 1)
 showwhatbutton()
  End Sub
 
  sub pagechange(sender as object, e as commandeventargs)
    select case e.commandargument
   case "firstpage"
     pagelist.selectedindex = 0
   case "nextpage"
     pagelist.selectedindex  += 1
   case "prepage"
      pagelist.selectedindex  -= 1
   case "lastpage"
   pagelist.selectedindex = showtotalpage.text - 1
  end select
  bindlist(PageList.SelectedIndex + 1)
  showwhatbutton()
  end sub
</script>

<Html>
  <Body>
    <Form Runat="Server">
      收录专辑总数:<Asp:Label Runat="Server" Id="ShowTotalrecord" />
      <asp:linkbutton runat="server" ID="firstpage" OnCommand="pagechange" Text="首页" CommandArgument="firstpage"/>
    <asp:linkbutton runat="server" ID="lastpage" OnCommand="pagechange" Text="尾页" CommandArgument="lastpage"/>      
       <asp:linkbutton runat="server" ID="prepage" OnCommand="pagechange" Text="上一页" CommandArgument="prepage"/>      
       <asp:linkbutton runat="server" ID="nextpage" OnCommand="pagechange" Text="下一页" CommandArgument="nextpage"/>      
<br>
  
   总页数:<Asp:Label Runat="Server" Id="showtotalpage" />
   目前位于:<asp:dropdownlist runat="Server" ID="PageList" AutoPostBack="True" OnSelectedIndexChanged="PageList_Change" />
   <Asp:Repeater Runat="Server" Id="myRepeater">
        <ItemTemplate>          <Br>
          <Br>
          <table border="0" cellspacing="0" cellpadding="0">
            <tr>
              <td width="147" rowspan="6"> <div align="center"><Img Src="<%# Container.DataItem("唱片图片") %>"></div></td>
              <td width="362">&nbsp;</td>
            </tr>
            <tr>
              <td>乐队:<%# Container.DataItem("乐队名") %></td>
            </tr>
            <tr>
              <td>唱片:<%# Container.DataItem("唱片名") %></td>
            </tr>
            <tr>
              <td>加入时间:<%# Container.DataItem("添加时间")%> </td>
            </tr>
            <tr>
              <td>推荐指数:<%# Container.DataItem("欣赏指数")%></td>
            </tr>
            <tr>
              <td height="41">唱片风格:<%# Container.DataItem("风格名")%></td>
            </tr>
          </table>
          <Br>
        </ItemTemplate>
      </Asp:Repeater>
    </Form>
  </Body>
</Html>

---------------------------------------------------------------

数据库可以按照代码里自行建立

0
0
查看评论

Repeater 汇总某一列(序号,分页) 最简单方法

<br />2,Repeater汇总某一列<br /><asp:Repeater ID="gvList" runat="server"><br />    <HeaderTem...
  • ououou123456789
  • ououou123456789
  • 2011-01-05 16:29
  • 1891

Repeater和AspnetPager实现分页显示及固定表头

repeater控件和AspnetPager控件配合使用,并附带冻结<table/>表头效果
  • xiaouncle
  • xiaouncle
  • 2016-08-06 19:12
  • 1847

Repeater控件实现数据绑定,并实现分页效果

前台显示代码 <table style="width: 100%; text-align: center; height: 102px; font-size: small;" align="center" ...
  • ysj1163620987
  • ysj1163620987
  • 2012-08-30 08:58
  • 2615

.NET实现Repeater控件+AspNetPager控件分页

.NET实现Repeater控件+AspNetPager控件分页 SqlConnection (.NET C#) 连接及分页  .net的访问数据机制决定了访问大量数据时会致使客户端机器消耗大量资源,因此有必要对数据进行分页显示,开发工具vs.net+sqlserver,语言c# ...
  • kingmax54212008
  • kingmax54212008
  • 2013-03-07 23:25
  • 3113

Repeater的真分页——善良公社

在做善良公社项目,遇到一个关于分页的问题。我是用Repeater绑定的数据,Repeater控件轻量级,完全的自定义,正是因为这些优点,所以说没有自动分页的功能。这样,该如何实现分页呢? 再查找相关资料后,借助PageDataSource,实现了分页功能。
  • dandanzmc
  • dandanzmc
  • 2013-12-01 16:32
  • 2998

简单的repeater分页代码

昨天研究了一天才隐约明白了一点这种利用ds给赋新值的分页方法。 practice_1 --------------------------------------------   定义bindlist子程序,调用pageno(页面位置)参数  sub BindList(...
  • fineflyak
  • fineflyak
  • 2004-07-14 10:08
  • 1928

控件(九)——Repeater控件实现分页

Repeater控件有五个模版,我们可以根据需要选择使用,分别是:   1、ItemTempplate:正常项 2、AlternatingItemTemplate:交错项 3、HeaderTemplate:页眉 4、FooterTemplate:页脚 5、SeparaterTemplate...
  • liu765023051
  • liu765023051
  • 2012-05-26 15:14
  • 5135

一个简单的JSP分页代码

 Connection con=null;//加载 Oracle jdbc  thin 驱动程序Class.forName("oracle.jdbc.driver.OracleDriver");//Oracle thin jdbc URL String url...
  • cdl2008sky
  • cdl2008sky
  • 2008-12-03 18:21
  • 2076

简单的分页代码js实现

先看看效果图: 简单的分页js代码: 1、效果描述: 不用分页即可显示的jQuery插件 jQuery分页插件——jQuery.page.js用法很简单,效果很棒 2、调用方法:$(".tcdPageCode").createPage({ pageCount:10,...
  • SeekerTime
  • SeekerTime
  • 2017-07-10 20:18
  • 696

从零开始实现一个简单的分页

前言 分页技术就是JSP页面用来显示数据。如果有100条数据,分页显示,每页显示10条,总共有10页;好处就是利于页面布局,且显示效率高。分页关键点1. 分页的SQL语句 //admin被分页的表,limit两个参数控制起始和终止页 select * from admin limi...
  • chengyunyi123
  • chengyunyi123
  • 2016-12-28 09:32
  • 325
    个人资料
    • 访问:1095304次
    • 积分:14272
    • 等级:
    • 排名:第1027名
    • 原创:305篇
    • 转载:28篇
    • 译文:0篇
    • 评论:592条
    最新评论
    [╄ 冷枫]简介