凹丫丫网络社区's Archiver

乖乖狗 发表于 2008-5-17 16:04

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

<DIV class=NewsContent id=NewsContentLabel>&lt;% <BR>Option Explicit <BR>Response.Buffer = True <BR>On Error Resume Next <BR>Dim StarTime,EndTime,Sql_Use,Conn,Db,ConnStr <BR><BR>Rem ########################################################################## <BR>Rem ## 说明:本例中使用的数据库是动网论坛IP数据库 ## <BR>Rem ## 如果不想更换可以自行从动网论坛中找。 ## <BR>Rem ## 如果想更换数据库,那么你必须修改相应的SQL语句和其它参数 ## <BR>Rem ## 发布的该文档中我将JS附加在下面了,并且去掉了CSS等,可自行添加啦! ## <BR>Rem ########################################################################## <BR><BR>StarTime = Timer() <BR><BR>'第一次使用请修改本处数据库地址并相应修改data目录中数据库名称 <BR>'Db = "DataBase/iXuEr_Data_PAMS1.mdb" <BR>Db = "/DataBase/Ipaddress.mdb" <BR>ConnStr = "Provider = Microsoft.Jet.OLEDB.4.0;Data Source = " &amp; Server.MapPath(db) <BR><BR>Set Conn = Server.CreateObject("ADODB.Connection") <BR>Conn.open ConnStr <BR><BR>If Err Then <BR>Err.Clear <BR>Set Conn = Nothing <BR>Response.Write "The database connection error, please check the connection character string." <BR>'Response.Write "数据库连接错误,请检查连接字符串。" <BR>Response.End <BR>End If <BR><BR>Function CloseDB() <BR>Conn.close <BR>Set Conn = Nothing <BR>End Function <BR>'========================================================= <BR>' 文件:iXuEr_Data_PageShow <BR>' 功能:将指定数据库的指定项目进行分页读取 <BR>' 时间:2004-08-29 <BR>' 作者:Guidy <BR>' 版权:iXuEr Studio <BR>'========================================================= <BR>' Copyright (C) 2004-2006 114XP.CN All rights reserved. <BR>' 官方网站:HTTP://www.114xp.cn <BR>' 技术论坛:HTTP://bbs.114xp.cn <BR>' 电子信箱:guidy@qq.com,guidy@psysch.com <BR>'========================================================= <BR><BR>Dim SqlStr,DateNums,PageNums,URLs <BR><BR>SqlStr = "SELECT * FROM dv_address" <BR>Conn = Conn <BR>DateNums = 20 <BR>PageNums = Request("Page") <BR>URLs = "" <BR><BR>'################################################################################ <BR>'使用之前需要预先定义这三个函数,根据自己适用情况而定 <BR>'################################################################################ <BR>Function iXuEr_Page_DHead() <BR>Response.Write("&lt;hr&gt;表头&lt;hr&gt;") <BR>End Function <BR>'-------------------------------------------------------------------------------- <BR>Function iXuEr_Page_DBody(DPS_Rs) <BR>Response.Write("数据:" &amp; DPS_Rs("IP1") &amp; "---" &amp; DPS_Rs("IP2") &amp; "---" &amp; DPS_Rs("country") &amp; "---" &amp; DPS_Rs("city") &amp; "&lt;br&gt;") <BR>End Function <BR>'-------------------------------------------------------------------------------- <BR>Function iXuEr_Page_DTail() <BR>Response.Write("&lt;hr&gt;表尾&lt;hr&gt;") <BR>End Function <BR>'################################################################################ <BR>Call iXuEr_Data_PageShow(SqlStr,Conn,DateNums,PageNums,URLs) <BR>'################################################################################ <BR>Function iXuEr_Data_PageShow(SqlStr,Conn,DateNums,PageNums,URLs) <BR>'========================================================= <BR>' 函数:iXuEr_Data_PageShow(SqlStr,Conn,DateNums,PageNums,URLs) <BR>' 功能:将指定数据库的指定项目进行分页读取 <BR>' 参数:SQL语句,数据库链接对象,每页数量,页码,连接URLs <BR>' 返回:字符串 <BR>' 时间:2004-08-29 <BR>' 作者:Guidy <BR>' 版权:iXuEr Studio <BR>'========================================================= <BR>' Copyright (C) 2004-2006 114XP.CN All Rights Reserved. <BR>' 官方网站:http://www.114xp.cn <BR>' 技术论坛:http://bbs.114xp.cn <BR>' 电子信箱:guidy@qq.com,guidy@psysch.com <BR>'========================================================= <BR><BR>Dim DPS_Rs,DPS_Conn <BR>Dim Sql <BR>Dim Page <BR>Dim DPS_i <BR><BR>'创建Recordset对象 <BR>Set DPS_Rs = Server.CreateObject("Adodb.Recordset") <BR>'初始化Sql语句 <BR>Sql = SqlStr <BR>DPS_Conn = Conn <BR>'执行Sql <BR>DPS_Rs.Open Sql,DPS_Conn,1,3 <BR>'初始化页面大小--每页显示数目 <BR>DPS_Rs.PageSize = DateNums <BR>'初始化页码 <BR>Page = Clng(PageNums) <BR>'如果页码小于1,或者没有选择页码,则强制转到第一页 <BR>If IsNull(Page) Or Page = "" Then Page = 1 <BR>If Page &lt;= 1 then Page = 1 <BR>'如果页码大于最大值,则强制转到最后一页 <BR>If Page&gt;=DPS_Rs.PageCount Then Page=DPS_Rs.PageCount <BR>'如果页码不等于1,则跳转至指定页面读取数据 <BR>If Page &lt;&gt; 1 then <BR>If (Page - 1) * DPS_Rs.Pagesize &lt; DPS_Rs.RecordCount then <BR>DPS_Rs.Move (Page - 1) * DPS_Rs.PageSize <BR>End If <BR>End If <BR>Call iXuEr_Page_URLs(Page,URLs,DPS_Rs,"DPS_TP1","Page") <BR>'数据显示表格头部 <BR>Call iXuEr_Page_DHead() <BR>DPS_i = 0 <BR>Do While Not DPS_Rs.eof And DPS_i &lt; DPS_Rs.Pagesize <BR>'数据显示主体部分 <BR>Call iXuEr_Page_DBody(DPS_Rs) <BR>DPS_i = DPS_i + 1 <BR>DPS_Rs.MoveNext <BR>Loop <BR>'数据显示表格尾部 <BR>Call iXuEr_Page_DTail() <BR><BR>Call iXuEr_Page_URLs(Page,URLs,DPS_Rs,"DPS_TP2","Page") <BR>DPS_Rs.Close <BR>Set DPS_Rs = Nothing <BR>End Function <BR>Function iXuEr_Page_URLs(Page,URLs,DPS_Rs,FormName,InPutName) <BR>If URLs = "" Or IsNull(URLs) Then URLs = "?=" <BR>Response.Write("&lt;table width='100%'&gt;&lt;tr align=center&gt;&lt;form name=" &amp; FormName &amp; " method=post action=" &amp; URLs &amp; "&gt;&lt;td&gt;" &amp; DPS_Rs.PageSize &amp; "个/页&nbsp;&nbsp;&nbsp;页数:" &amp; Page &amp; "/" &amp; DPS_Rs.PageCount &amp; "&nbsp;&nbsp; 共" &amp; DPS_Rs.recordcount &amp; "个&nbsp;&nbsp;&nbsp;") <BR>If Page &lt;&gt; 1 then <BR>Response.Write ("[" &amp; "&lt;a href=""" &amp; URLs &amp; "&amp;" &amp; InPutName &amp; "=1"" title=""返回到第一页""&gt;首页&lt;/a&gt;]") <BR>Response.Write ("[" &amp; "&lt;a href=""" &amp; URLs &amp; "&amp;" &amp; InPutName &amp; "=" &amp; Page - 1 &amp; """ title=""返回到" &amp; Cstr(Page - 1) &amp; "页""&gt;上一页&lt;/a&gt;] ") <BR>else <BR>Response.Write ("[首页] [上一页]") <BR>End If <BR>If Page &lt;&gt; DPS_Rs.PageCount then <BR>Response.Write ("[" &amp; "&lt;a href=""" &amp; URLs &amp; "&amp;" &amp; InPutName &amp; "=" &amp; Page + 1 &amp; """ title=""前进到" &amp; Cstr(Page + 1) &amp; "页""&gt;下一页&lt;/a&gt;] ") <BR>Response.Write ("[" &amp; "&lt;a href=""" &amp; URLs &amp; "&amp;" &amp; InPutName &amp; "=" &amp; DPS_Rs.PageCount &amp; """ title=""前进到最后一页""&gt;尾页&lt;/a&gt;] ") <BR>else <BR>Response.Write ("[下一页] [尾页]") <BR>End If <BR>Response.Write("&nbsp;&nbsp;&lt;input name=" &amp; InPutName &amp; " type=text style=""text-align: center;"" id=" &amp; InPutName &amp; " value=" &amp; Page &amp; " size=6 maxlength=10 title=""请输入您想跳转到的页数""&gt;&nbsp;&lt;input name=topPage type=Submit value=跳页 title=""点击将跳转到您输入的页数""&gt;") <BR>Response.Write("&lt;/td&gt;&lt;/form&gt;&lt;/tr&gt;&lt;/table&gt;") <BR>End Function <BR>%&gt; <BR>&lt;script language="javascript1.2"&gt; <BR>//######################################################################################### <BR>//检测表单中的数据并只允许输入数字 <BR>function numericCheck(myform,myinput){ <BR>//设定要检查的表单对象名称 <BR>var nr1=eval("document."+myform+"."+myinput+".value;"); <BR>var flg=0; <BR>var str=""; <BR>var spc="" <BR>var arw=""; <BR>for (var i=0;i&lt;nr1.length;i++){ <BR>var cmp="0123456789" <BR>var tst=nr1.substring(i,i+1) <BR>if (cmp.indexOf(tst)&lt;0){ <BR>flg++; <BR>tst=tst.replace(" ","[空格]") <BR>str+="\n第"+(i+1)+"位的:"+tst; <BR>spc+=tst; <BR>arw+="^"; <BR>} <BR>else{ <BR>arw+="_"; <BR>} <BR>} <BR>if (flg!=0){ <BR>if (spc.indexOf("[空格]")&gt;-1) { <BR>str+="\n────────────────────────\n注意:空格被禁用!"; <BR>} <BR>alert("这里只接受数字,发现 " + flg + " 个不可接受的字符,分别是:\n━━━━━━━━━━━━━━━━━━━━━━━━"+str); <BR>return false; <BR>} <BR>} <BR>//检测表单中的数据并只允许输入数字结束 <BR><BR>//######################################################################################### <BR>&lt;/script&gt;&nbsp;</DIV>

乖乖狗 发表于 2008-5-25 16:35

/:(a15

页: [1]

Powered by Discuz! Archiver 6.1.0  © 2001-2007 Comsenz Inc.