| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 1036 人关注过本帖
标题:请教一个分页函数的修改~~
只看楼主 加入收藏
sjzfls
Rank: 1
等 级:新手上路
帖 子:119
专家分:0
注 册:2007-5-11
结帖率:0
收藏
 问题点数:0 回复次数:5 
请教一个分页函数的修改~~
函数如下:

预览:http://www.
支持自定义显示页码的个数,并首先会保证页码的个数
支持自定义上一页下一页字符
支持是否显示数据分页信息,如总共多少页
支持是否下拉列表转向分页
支持是否输入框转向分页,自动判断数字
支持自定义接收页码变量名,默认为page
<%
sql=""
Set Rs=Server.CreateObject("Adodb.RecordSet")
Rs.open Sql,TXconn,1,1
If Rs.RecordCount Then

        TopNum=10        '定义每页显示多少条
        QName="Page"        '定义接收页码的变量名

        Page=Request.QueryString(QName)
        If Page="" Then
                Page=1
        ElseIf Not IsNumeric(Page) Then
                Page=1
        Else
                Page=Page+0
        End if
        MaxPage=Fix(Rs.RecordCount/TopNum)
        If (Rs.RecordCount mod TopNum) Then MaxPage=MaxPage+1
        If Page>MaxPage Then Page=MaxPage
        Rs.PageSize=TopNum
        Rs.AbsolutePage = Page

        For i=1 to TopNum
                If Rs.bof or Rs.eof Then Exit For
                        Response.write(i&"<br />")
                Rs.MoveNext
        Next
Else
        Response.write("no data")
End If
%>

<%=TXPage(Rs.RecordCount,TopNum,2,0,0,0,QName)%>

<%
Function TXPage(Totals,PerNums,PageNum,Info,List,Input,QName)
'分页函数(所有数量,每页显示记录数,页码个数,页码统计信息,下拉列表,输入框,页码变量名[为空则为Page])
        Dim strBegin,strBefore,strPrev,strNext,strAfter,strEnd,BeginNum,EndNum,Page,Pages,Url
        strBegin="<font face=""webdings"">9</font>"  '定义第一页按钮显示样式
        strBefore="<font face=""webdings"">7</font>"  '定义上几页按钮显示样式
        strPrev="<font face=""webdings"">3</font>"  '定义前一页按钮显示样式
        strNext="<font face=""webdings"">4</font>"  '定义下一页按钮显示样式
        strAfter="<font face=""webdings"">8</font>"  '定义后几页按钮显示样式
        strEnd="<font face=""webdings"">:</font>"  '定义最后一页按钮显示样式
        
        PageNum=Fix(PageNum/2)
        If QName="" Then QName="Page"
        Page=Request.QueryString(QName)
        Url="?"
        Dim Query,str,i
        Query=Split(Request.ServerVariables("QUERY_STRING"),"&")
        For i=0 to Ubound(Query)
                Str=Split(Query(i),"=")
                If Lcase(Str(0))<>Lcase(QName) Then Url=Url&Str(0)&"="&Str(1)&"&"
        Next
        PerNums=PerNums+0
        If Totals mod PerNums Then
                Pages=Fix(Totals/PerNums)+1
        Else
                Pages=Fix(Totals/PerNums)
        End If
        If IsNumeric(Page) Then
                Page=Page+0
                If Page>Pages Then
                        Page=Pages
                ElseIf Page<1 Then
                        Page=1
                End If
        Else
                Page=1
        End If
        
        TXPage=""
        BeginNum=Page-PageNum
        EndNum=Page+PageNum
        If BeginNum<1 Then BeginNum=1
        If EndNum-BeginNum<PageNum*2 Then EndNum=BeginNum+PageNum*2
        If EndNum>Pages Then EndNum=Pages
        If EndNum-BeginNum<PageNum*2 Then BeginNum=EndNum-PageNum*2
        If BeginNum<1 Then BeginNum=1
        If BeginNum>PageNum*2 and PageNum>1 Then TXPage=TXPage&"<a href="""&Url&QName&"="&Page-PageNum*2&"""

Title=""前"&PageNum*2&"页"">"&strBefore&"</a>"
        If BeginNum>1 Then TXPage="<a href="""&Url&QName&"=1"" Title=""第一页"">"&strBegin&"</a>"&TXPage&"<a

href="""&Url&QName&"="&Page-1&""" Title=""上一页"">"&strPrev&"</a>.."
        For i=BeginNum to EndNum
                If i=Page Then
                        TXPage=TXPage&"[<span style=""cursor:pointer;font-weight:bold;"">"&i&"</span>]"
                Else
                        TXPage=TXPage&"[<a href="""&Url&QName&"="&i&""">"&i&"</a>]"
                End If
        Next
        If EndNum<Pages Then TXPage=TXPage&"..<a href="""&Url&QName&"="&Page+1&""" Title=""下一页"">"&strNext&"</a>"
        If EndNum<Pages-PageNum*2 and PageNum>1 Then TXPage=TXPage&"<a href="""&Url&QName&"="&Page+PageNum*2&""" Title=""

后"&PageNum*2&"页"">"&strAfter&"</a>"
        If EndNum<Pages Then TXPage=TXPage&"<a href="""&Url&QName&"="&Pages&""" Title=""最末页"">"&strEnd&"</a>"
        If Info Then TXPage=TXPage&" 页次:"&Page&"/"&Pages&"页 共"&Totals&"条 "&PerNums&"条/页"
        If List Then
                TXPage=TXPage&" <select onChange=""javascript:window.location.href='"&Url&QName&"='+this.options

[this.selectedIndex].innerText;"">"
                For i=1 to Pages
                        TXPage=TXPage&"<option"
                        If i=Page Then TXPage=TXPage&" selected"
                        TXPage=TXPage&">"&i&"</option>"
                Next
                TXPage=TXPage&"</select>"
        End If
        If Input Then TXPage=TXPage&" <input type=""text"" size=""1"" Title=""输入号码后,按回车即可""

style=""overflow:visible;ime-mode:disabled;"" onkeydown=""javascript:if

('.8.13.37.39.46.48.49.50.51.52.53.54.55.56.57.96.97.98.99.100.101.102.103.104.105.'.indexOf('.'+event.keyCode+'.')>=0){if

(event.keyCode==13){window.location.href='"&Url&QName&"='+value;}}else{return false;}"">"
End Function
%>



问题如下:

就是如何如何调用啊~

是不是(我的表名是 news, 题目是 news_head)


<%
sql=""

这改成

<!--#include file="conn.asp"-->
<%
exec="select * from  news  order by news_time desc "
set rs=server.createobject("adodb.recordset")
rs.open exec,conn,1,1
If Rs.RecordCount Then

        TopNum=10        '定义每页显示多少条
        QName="Page"        '定义接收页码的变量名

..........
..........

(event.keyCode==13){window.location.href='"&Url&QName&"='+value;}}else{return false;}"">"
End Function
%>

可是新闻题目列表news_head写在哪,该如何以列表形式显示出来啊? 请求大家的帮助~
搜索更多相关主题的帖子: 函数 
2008-12-07 16:26
yms123
Rank: 16Rank: 16Rank: 16Rank: 16
等 级:版主
威 望:209
帖 子:12488
专家分:19042
注 册:2004-7-17
收藏
得分:0 
https://bbs.bccn.net/viewthread.php?tid=37557&extra=page%3D1%26amp%3Bfilter%3Ddigest
给楼主推荐我写的分页类绝对的简单灵活,修改方便,除了不支持自定义页码数之外,数据显示方式等完全可以自定义。
2008-12-07 20:05
sjzfls
Rank: 1
等 级:新手上路
帖 子:119
专家分:0
注 册:2007-5-11
收藏
得分:0 
感谢斑竹,不过您的代码通过百万数据的测试吗?
是不是大数据下 分页显示速度会变的很慢呢???
2008-12-08 16:03
sjzfls
Rank: 1
等 级:新手上路
帖 子:119
专家分:0
注 册:2007-5-11
收藏
得分:0 
老大,您的分页代码在百万数据的测试下
是不是分页显示速度会变的很慢呢???
2008-12-09 15:28
hmhz
Rank: 7Rank: 7Rank: 7
等 级:贵宾
威 望:30
帖 子:1890
专家分:503
注 册:2006-12-17
收藏
得分:0 
百万数据只有使用存储过程效率才能提高

[编程论坛] ASP超级群:49158383  敲门暗号:ASP编程
龍艺博客 http://www.
2008-12-09 17:45
sjzfls
Rank: 1
等 级:新手上路
帖 子:119
专家分:0
注 册:2007-5-11
收藏
得分:0 
下面这个算是使用了存储过程的吗?

intTotalRecords = rs.RecordCount
rs.PageSize = intPageSize
intTotalPages = rs.PageCount
If intCurrentPage > intTotalPages Then intCurrentPage = intTotalPages
If intTotalRecords > 0 Then rs.AbsolutePage = intCurrentPage
strOut(0) = strOut(0) & "共 " & intTotalRecords & " 条记录 "
strOut(0) = strOut(0) & "共 " & intTotalPages & " 页 "
strOut(0) = strOut(0) & "当前第 " & intCurrentPage & " 页 "
If intCurrentPage <> 1 And intTotalRecords <> 0 Then
strOut(0) = strOut(0) & "<a href=""?pageNum=1""><<首页</a> "
Else
strOut(0) = strOut(0) & "<<首页 "
End If
If intCurrentPage > 1 Then
strOut(0) = strOut(0) & "<a href=""?pageNum=" & intCurrentPage - 1 & """><上一页</a> "
Else
strOut(0) = strOut(0) & "<上一页 "
End If
If intCurrentPage < intTotalPages Then
strOut(0) = strOut(0) & "<a href=""?pageNum=" & intCurrentPage + 1 & """>下一页></a> "
Else
strOut(0) = strOut(0) & "下一页> "
End If
If intCurrentPage <> intTotalPages Then
strOut(0) = strOut(0) & "<a href=""?pageNum=" & intTotalPages & """>尾页>></a>"
Else
strOut(0) = strOut(0) & "尾页>>"
End If
2008-12-10 11:46
快速回复:请教一个分页函数的修改~~
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.024366 second(s), 8 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved