快精灵印艺坊 您身边的文印专家
广州名片 深圳名片 会员卡 贵宾卡 印刷 设计教程
产品展示 在线订购 会员中心 产品模板 设计指南 在线编辑
 首页 名片设计   CorelDRAW   Illustrator   AuotoCAD   Painter   其他软件   Photoshop   Fireworks   Flash  

 » 彩色名片
 » PVC卡
 » 彩色磁性卡
 » 彩页/画册
 » 个性印务
 » 彩色不干胶
 » 明信片
   » 明信片
   » 彩色书签
   » 门挂
 » 其他产品与服务
   » 创业锦囊
   » 办公用品
     » 信封、信纸
     » 便签纸、斜面纸砖
     » 无碳复印纸
   » 海报
   » 大篇幅印刷
     » KT板
     » 海报
     » 横幅

一个超强通用的分页显示函数

<%
Option Explicit
Response.Buffer = True
On Error Resume Next
Dim StarTime,EndTime,Sql_Use,Conn,Db,ConnStr

Rem ##########################################################################
Rem ## 说明:本例中使用的数据库是动网论坛IP数据库 ##
Rem ## 假如不想更换可以自行从动网论坛中找。 ##
Rem ## 假如想更换数据库,那么你必须修改相应的SQL语句和其它参数 ##
Rem ## 发布的该文档中我将JS附加在下面了,并且去掉了CSS等,可自行添加啦! ##
Rem ##########################################################################

StarTime = Timer()

\\\'第一次使用请修改本处数据库地址并相应修改data目录中数据库名称
\\\'Db = "DataBase/iXuEr_Data_PAMS1.mdb"
Db = "/DataBase/Ipaddress.mdb"
ConnStr = "Provider = Microsoft.Jet.OLEDB.4.0;Data Source = " & Server.MapPath(db)

Set Conn = Server.CreateObject("ADODB.Connection")
Conn.open ConnStr

If Err Then
Err.Clear
Set Conn = Nothing
Response.Write "The database connection error, please check the connection character string."
\\\'Response.Write "数据库连接错误,请检查连接字符串。"
Response.End
End If

Function CloseDB()
Conn.close
Set Conn = Nothing
End Function
\\\'=========================================================
\\\' 文件:iXuEr_Data_PageShow
\\\' 功能:将指定数据库的指定项目进行分页读取
\\\' 时间:2004-08-29
\\\' 作者:Guidy
\\\' 版权:iXuEr Studio
\\\'=========================================================
\\\' Copyright (C) 2004-2006 114XP.CN All rights reserved.
\\\' 官方网站:HTTP://www.114xp.cn
\\\' 技术论坛:HTTP://bbs.114xp.cn
\\\' 电子信箱:guidy@qq.com,guidy@psysch.com
\\\'=========================================================

Dim SqlStr,DateNums,PageNums,URLs

SqlStr = "SELECT * FROM dv_address"
Conn = Conn
DateNums = 20
PageNums = Request("Page")
URLs = ""

\\\'################################################################################
\\\'使用之前需要预先定义这三个函数,根据自己适用情况而定
\\\'################################################################################
Function iXuEr_Page_DHead()
Response.Write("<hr>表头<hr>")
End Function
\\\'--------------------------------------------------------------------------------
Function iXuEr_Page_DBody(DPS_Rs)
Response.Write("数据:" & DPS_Rs("IP1") & "---" & DPS_Rs("IP2") & "---" & DPS_Rs("country") & "---" & DPS_Rs("city") & "<br>")
End Function
\\\'--------------------------------------------------------------------------------
Function iXuEr_Page_DTail()
Response.Write("<hr>表尾<hr>")
End Function
\\\'################################################################################
Call iXuEr_Data_PageShow(SqlStr,Conn,DateNums,PageNums,URLs)
\\\'################################################################################
Function iXuEr_Data_PageShow(SqlStr,Conn,DateNums,PageNums,URLs)
\\\'=========================================================
\\\' 函数:iXuEr_Data_PageShow(SqlStr,Conn,DateNums,PageNums,URLs)
\\\' 功能:将指定数据库的指定项目进行分页读取
\\\' 参数:SQL语句,数据库链接对象,每页数量,页码,连接URLs
\\\' 返回:字符串
\\\' 时间:2004-08-29
\\\' 作者:Guidy
\\\' 版权:iXuEr Studio
\\\'=========================================================
\\\' Copyright (C) 2004-2006 114XP.CN All Rights Reserved.
\\\' 官方网站:http://www.114xp.cn
\\\' 技术论坛:http://bbs.114xp.cn
\\\' 电子信箱:guidy@qq.com,guidy@psysch.com
\\\'=========================================================

Dim DPS_Rs,DPS_Conn
Dim Sql
Dim Page
Dim DPS_i

\\\'创建Recordset对象
Set DPS_Rs = Server.CreateObject("Adodb.Recordset")
\\\'初始化Sql语句
Sql = SqlStr
DPS_Conn = Conn
\\\'执行Sql
DPS_Rs.Open Sql,DPS_Conn,1,3
\\\'初始化页面大小--每页显示数目
DPS_Rs.PageSize = DateNums
\\\'初始化页码
Page = Clng(PageNums)
\\\'假如页码小于1,或者没有选择页码,则强制转到第一页
If IsNull(Page) Or Page = "" Then Page = 1
If Page <= 1 then Page = 1
\\\'假如页码大于最大值,则强制转到最后一页
If Page>=DPS_Rs.PageCount Then Page=DPS_Rs.PageCount
\\\'假如页码不等于1,则跳转至指定页面读取数据
If Page <> 1 then
If (Page - 1) * DPS_Rs.Pagesize < DPS_Rs.RecordCount then
DPS_Rs.Move (Page - 1) * DPS_Rs.PageSize
End If
End If
Call iXuEr_Page_URLs(Page,URLs,DPS_Rs,"DPS_TP1","Page")
\\\'数据显示表格头部
Call iXuEr_Page_DHead()
DPS_i = 0
Do While Not DPS_Rs.eof And DPS_i < DPS_Rs.Pagesize
\\\'数据显示主体部分
Call iXuEr_Page_DBody(DPS_Rs)
DPS_i = DPS_i + 1
DPS_Rs.MoveNext
Loop
\\\'数据显示表格尾部
Call iXuEr_Page_DTail()

Call iXuEr_Page_URLs(Page,URLs,DPS_Rs,"DPS_TP2","Page")
DPS_Rs.Close
Set DPS_Rs = Nothing
End Function
Function iXuEr_Page_URLs(Page,URLs,DPS_Rs,FormName,InPutName)
If URLs = "" Or IsNull(URLs) Then URLs = "?="
Response.Write("<table width=\\\'100%\\\'><tr align=center><form onsubmit=\\\'return numericCheck(""" & FormName & """,""" & InPutName & """)\\\' name=" & FormName & " method=post action=" & URLs & "><td>" & DPS_Rs.PageSize & "个/页&nbsp;&nbsp;&nbsp;页数:" & Page & "/" & DPS_Rs.PageCount & "&nbsp;&nbsp; 共" & DPS_Rs.recordcount & "个&nbsp;&nbsp;&nbsp;")
If Page <> 1 then
Response.Write ("[" & "<a href=""" & URLs & "&" & InPutName & "=1"" title=""返回到第一页"">首页</a>]")
Response.Write ("[" & "<a href=""" & URLs & "&" & InPutName & "=" & Page - 1 & """ title=""返回到" & Cstr(Page - 1) & "页"">上一页</a>] ")
else
Response.Write ("[首页] [上一页]")
End If
If Page <> DPS_Rs.PageCount then
Response.Write ("[" & "<a href=""" & URLs & "&" & InPutName & "=" & Page + 1 & """ title=""前进到" & Cstr(Page + 1) & "页"">下一页</a>] ")
Response.Write ("[" & "<a href=""" & URLs & "&" & InPutName & "=" & DPS_Rs.PageCount & """ title=""前进到最后一页"">尾页</a>] ")
else
Response.Write ("[下一页] [尾页]")
End If
Response.Write("&nbsp;&nbsp;<input name=" & InPutName & " type=text style=""text-align: center;"" id=" & InPutName & " value=" & Page & " size=6 maxlength=10 title=""请输入您想跳转到的页数"">&nbsp;<input name=topPage type=Submit value=跳页 title=""点击将跳转到您输入的页数"">")
Response.Write("</td></form></tr></table>")
End Function
%>
<script language="javascript1.2">
//##############################################################################
//检测表单中的数据并只答应输入数字
function numericCheck(myform,myinput){
//设定要检查的表单对象名称
var nr1=eval("document."+myform+"."+myinput+".value;");
var flg=0;
var str="";
var spc=""
var arw="";
for (var i=0;i<nr1.length;i++){
var cmp="0123456789"
var tst=nr1.substring(i,i+1)
if (cmp.indexOf(tst)<0){
flg++;
tst=tst.replace(" ","[空格]")
str+="n第"+(i+1)+"位的:"+tst;
spc+=tst;
arw+="^";
}
else{
arw+="_";
}
}
if (flg!=0){
if (spc.indexOf("[空格]")>-1) {
str+="n────────────────────────n注重:空格被禁用!";
}
alert("这里只接受数字,发现 " + flg + " 个不可接受的字符,分别是:n━━━━━━━━━━━━━━━━━━━━━━━━"+str);
return false;
}
}
//检测表单中的数据并只答应输入数字结束

//#########################################################################################
</script>
返回类别: 教程
上一教程: ASP开发中可能碰到的错误信息中文说明大全
下一教程: 读取ACCESS数据库表名实例

您可以阅读与"一个超强通用的分页显示函数"相关的教程:
· 针对SELECT写了一个通用的OPTION输出函数
· 通用的分页类(不执行SQL,直接绑定数据)
· 两个不同数据库表的分页显示解决方案
· ADO存取数据时如何实现留言记录的分页显示
· 一个通用数据库显示程序,能调任意库,任意字段,多要害字搜索,自动分页
    微笑服务 优质保证 索取样品