500分 求做一分页代码!

frankhuai 2003-09-27 10:01:34
目前数据库里有一产品表,字段分别为: idproduct, productname, price,
现求写一段代码把它分为9行,每行5个。 像下面的这个:
http://www.trdflower.com.cn/market/index.asp

写完马上揭帖!
...全文
92 13 打赏 收藏 转发到动态 举报
写回复
用AI写文章
13 条回复
切换为时间正序
请发表友善的回复…
发表回复
119311canoe 2003-09-27
  • 打赏
  • 举报
回复

<%
private function fenye(rs,pagesize,args)
dim intcur
dim intpagesize
dim total
dim inttotal

arg=split(args,",")
if Request.QueryString("page")=""then
intcur=1
page="first"
else
select case request("page")
case "first"
intcur=1
case "previous"
intcur=cint(request("curpage"))
intcur=intcur-1
case "next"
intcur=cint(request("curpage"))
intcur=intcur+1
case "last"
intcur=cint(request("curpage"))
case else
intcur=request("page")
end select
end if
%>
<table width="100%" border="0" cellpadding="0" cellspacing="0">
<tr>
<td colspan="2" height="58">
<%
if rs.eof then
Response.Write"没有栏目"
else
intpagesize=pagesize
rs.pagesize=intpagesize
if not rs.eof then
rs.absolutepage=intcur
end if
total=rs.recordcount
inttotal=rs.pagecount
dim i
i=0
%>
<table border="1" align="center">
<tr>
<%
dim n
n=0
do while n<=ubound(args)
%>
<th>
<% Response.Write args(n)%>
</th>
<%
n=n+1
loop
%>
</tr>
<% do while not rs.eof and i<intpagesize %>
<tr>
<%
dim l
l=0
do while l<=ubound(args)
%>
<td>
<%=rs(args(l))%>
</td>
<%
l=l+1
loop
%>
</tr>
<%
i=i+1
rs.movenext
loop
%>
</table>
<% end if %>
</td>
</tr>
</table>
<div align="center"><br>
<%=intcur%>/<%=inttotal%>
<% if intcur>1 then %>
<a href="kindmore.asp?page=previous&curpage=<%=intcur%>">上一页</a>
<% else %>
上一页
<%
end if
intcur=cint(intcur)
inttotal=cint(inttotal)
%>
<% if intcur<inttotal then %>
<a href="kindmore.asp?page=next&curpage=<%=intcur%>">下一页</a>
<% else %>
下一页
<% end if %>
</div>
<%
rs.close
set rs=nothing
end function
%>
*********************************************************
掉用时
<%call fenye(rs名称, 每页记录数,"字段名")%>
lovehwq21 2003-09-27
  • 打赏
  • 举报
回复
还是  xxrl(孔曰成仁,孟曰取E) 兄写得好,支持!
chinanetspy 2003-09-27
  • 打赏
  • 举报
回复
Set conn=Server.CreateObject("ADODB.Connection")
set rs=server.createobject("adodb.recordset")
conn.open ="driver={sql server};server=XXX; UID=XX;PWD=XXX;DATABASE=XXX;DSN=XXX"
rs.activeconnection=conn
rs.open("select * from table")


k=0
do while not rs.eof

productname=rs("productname")
if (k mod 5)=0 then
response.write "<br/>"
end if
k=k+1
rs.movenext
loop

rs.close
set rs=nothing
set conn=nothing


这个完全可以实现你的需要,仔细看看就可以了
tjzym 2003-09-27
  • 打赏
  • 举报
回复
hao
zqm9960 2003-09-27
  • 打赏
  • 举报
回复
3、conn.asp

dim strConnString,conn
strConnString = "Provider=SQLOLEDB;UID=dev;pwd=dev;database=xwsx;server=dev"
set conn=server.createobject("adodb.connection")
conn.open strConnString

4、index.asp

<!--#include file="conn.asp"-->
<!--#include file="getrecord.asp"-->
<%
sql=""
set rs=conn.execute(sql)
dim sql,rs,grade,RecordCount,PageTotal,PageNo,PageSize
PageSize=45
PageNo=cint(Request.QueryString("page"))
'------------------------------------------------------
GetRecordset sql,rs,RecordCount,PageTotal,PageNo,PageSize,"",""
%>
<table border="0" width="100%">
<tr>
<td>
<table width="100%" border="0" cellpadding="0" cellspacing="0">
<%
i=1
if not rs.eof then
do while not rs.eof
If i=1 Then
Response.Write "<tr>"
End If
If i=1 Or I mod 5<>0 Then
%><td>
<table width="90%" border="0" cellpadding="0" cellspacing="0">
<tr>
<td nowrap width="100">
</td>
<td width="20"></td>
</tr>
</table></td>
<%
End IF
If i mod 5=0 And I>1 Then
%>
<td><table width="90%" border="0" cellpadding="0" cellspacing="0">
<tr>
<td nowrap width="100">
</td>
<td width="20"></td>
</tr>
</table></td>
<%
End If
If i mod 5=0 Then
Response.Write "</tr>"
End If
i=i+1
rs.movenext
loop
end if
%>
</table>
</td>
</tr>
<tr>
<td>
<!--#include file="jumppage.asp" -->
<%jumppage RecordCount,PageTotal,PageNo,Request.ServerVariables("SCRIPT_NAME"),"submit=submit&textname="&textname%>

</td>
</tr>
</table>
xxrl 2003-09-27
  • 打赏
  • 举报
回复
通用分页代码:

<style>
TABLE
{
font-size: 10pt;
}
</style>
<%
'+++++++++++++++++++++++++++++++++++++
'◆模块名称: 公共翻页模块
'◆文 件 名: TurnPage.asp
'◆传入参数: Rs_tmp (记录集), PageSize (每页显示的记录条数)
'◆输 出: 记录集翻页显示功能
'+++++++++++++++++++++++++++++++++++++
'
Sub TurnPage(ByRef Rs_tmp,PageSize) 'Rs_tmp 记录集 ; PageSize 每页显示的记录条数;
Dim TotalPage '总页数
Dim PageNo '当前显示的是第几页
Dim RecordCount '总记录条数
Rs_tmp.PageSize = PageSize
RecordCount = Rs_tmp.RecordCount
TotalPage = INT(RecordCount / PageSize * -1)*-1
PageNo = Request.QueryString ("PageNo")
'直接输入页数跳转;
If Request.Form("PageNo")<>"" Then PageNo = Request.Form("PageNo")
'如果没有选择第几页,则默认显示第一页;
If PageNo = "" then PageNo = 1
If RecordCount <> 0 then
Rs_tmp.AbsolutePage = PageNo
End If

'获取当前文件名,使得每次翻页都在当前页面进行;
Dim fileName,postion
fileName = Request.ServerVariables("script_name")
postion = InstrRev(fileName,"/")+1
'取得当前的文件名称,使翻页的链接指向当前文件;
fileName = Mid(fileName,postion)

if instr(1,trim(request.servervariables("query_string")),"id")>0 or instr(1,trim(request.servervariables("query_string")),"Date")>0 then
if instr(1,trim(request.servervariables("query_string")),"PageNo")>0 then
fileName = fileName&"?"&mid(trim(request.servervariables("query_string")),1,instrrev(trim(request.servervariables("query_string")),"="))
else
fileName = fileName&"?"&trim(request.servervariables("query_string"))
end if
end if
%>

<table border=0 width='100%'>
<tr>
<td align=left>总页数:<font color=#ff3333><%=TotalPage%></font>页
当前第<font color=#ff3333><%=PageNo%></font>页</font></td>
<td align="right">
<%If RecordCount = 0 or TotalPage = 1 Then
Response.Write "首页|前页|后页|末页"
Else%>
<a href="<%=fileName%>
<%if instr(1,trim(request.servervariables("query_string")),"id")>0 or instr(1,trim(request.servervariables("query_string")),"Date")>0 then
if instr(1,trim(request.servervariables("query_string")),"PageNo")>0 then
response.write "1"
else
response.write "&PageNo=1"
end if
else
response.write "?PageNo=1"
end if%>

">首页|</a>
<%If PageNo - 1 = 0 Then
Response.Write "前页|"
Else%>
<a href="<%=fileName%>
<%if instr(1,trim(request.servervariables("query_string")),"id")>0 or instr(1,trim(request.servervariables("query_string")),"Date")>0 then
if instr(1,trim(request.servervariables("query_string")),"PageNo")>0 then
else
response.write "&PageNo="
end if
else
response.write "?PageNo="
end if%>

<%=PageNo-1%>">前页|</a>
<%End If

If PageNo+1 > TotalPage Then
Response.Write "后页|"
Else%>
<a href="<%=fileName%>
<%if instr(1,trim(request.servervariables("query_string")),"id")>0 or instr(1,trim(request.servervariables("query_string")),"Date")>0 then
if instr(1,trim(request.servervariables("query_string")),"PageNo")>0 then
else
response.write "&PageNo="
end if
else
response.write "?PageNo="
end if%><%=PageNo+1%>">后页|</a>
<%End If%>

<a href="<%=fileName%><%if instr(1,trim(request.servervariables("query_string")),"id")>0 or instr(1,trim(request.servervariables("query_string")),"Date")>0 then
if instr(1,trim(request.servervariables("query_string")),"PageNo")>0 then
else
response.write "&PageNo="
end if
else
response.write "?PageNo="
end if%><%=TotalPage%>">末页</a>
<%End If%></td>
</tr>
</table>

<%End Sub

%>

zqm9960 2003-09-27
  • 打赏
  • 举报
回复
1、getrecord.asp
<%
'===============================================================================
'功能描述: 用ADO打开数据库连接,执行输入的SQL语句,返回断开记录集(无分页)
'输入参数: 1)sSQL 要运行的SQL语句
' 2)Options ADO查询选项
' 3)UseShapeProvider 是否选用数据成行
'输出参数: 1)状态码
' 2)rs 返回断开记录集(无分页)
'===============================================================================
Public Function GetRecord(ByVal sSQL, _
ByRef rs As ADODB.Recordset, _
Optional ByVal Options As QueryOptions = dsUseDefault, _
Optional ByVal UseShapeProvider As Boolean = False) _
As Boolean

Dim cn As ADODB.Connection
Dim lErrNo As Long
Dim sErrDesc As String

'初始化为False
GetRecord = False

'置异常
On Error GoTo ErrorHandler

'创建连接、记录集
Set cn = New ADODB.Connection
Set rs = New ADODB.Recordset

'打开连接
If UseShapeProvider Then
cn.Open msConnectForShape '数据成型
Else
cn.Open msConnect '一般连接
End If

'设置rs属性
Set rs.ActiveConnection = cn
rs.CursorLocation = adUseClient
rs.CursorType = adOpenStatic
rs.LockType = adLockBatchOptimistic

'执行查询、取得记录集
rs.Open sSQL, , , , Options

'清除
Set rs.ActiveConnection = Nothing
cn.Close
Set cn = Nothing

'通知COM+成功
GetObjectContext.SetComplete

'成功退出
GetRecord = True
Exit Function

'出错处理
ErrorHandler:

'保存出错信息
lErrNo = Err.Number
sErrDesc = Err.Description

'通知COM+失败并清除
GetObjectContext.SetAbort
On Error Resume Next
Set rs.ActiveConnection = Nothing
rs.Close
Set rs = Nothing
cn.Close
Set cn = Nothing

'引发异常
On Error GoTo 0
Err.Raise lErrNo, OBJNAME, sErrDesc
End Function
%>

2、jumppage.asp
<%
'===============================================================================
''功能描述: 用于页面的跳转
'===============================================================================
%>
<script language=javascript src="/script/S_field_format.js"></script>
<SCRIPT LANGUAGE=javascript>
<!--
function dogopage(){
var strjump
if (!is_int(document.all("gopage"),1,"页码必须为数字!")){
return false
}
if (parseInt(document.all("gopage").value)>parseInt(document.all("pagecount").value) || parseInt(document.all("gopage").value)<1){
if (parseInt(document.all("pagecount").value)>0) {
alert("页码必须在1--"+document.all("pagecount").value+"之间!")
}
return false
}
strjump=document.all("jumpurl").value+"?page="+document.all("gopage").value
if (document.all("getfield").value.length>0){
strjump+="&"+document.all("getfield").value
}
window.location.assign(strjump)
}
//-->
</SCRIPT>
<%
'===============================================================================
'功能描述: 用于页面的跳转
'输入参数: 1)RecordCount 总记录数
' 2)PageTotal 总页数
' 3)PageNo 本页码
' 4)jumpurl 跳转至的页面URL, 一般为本页
' 5)getfield 跳转时要传递的参数
'输出参数: 无
'===============================================================================
'注意在引用时要加参数。
sub jumppage(RecordCount,PageTotal,PageNo,jumpurl,getfield)
Response.Write "<table width=""100%"" border=""0"" cellspacing=""0"" cellpadding=""0"" height=""28"" align=""center"">"
Response.Write "<tr>"
Response.Write "<td align=""center"" class=""table_page""> </td>"
Response.Write "<td class=""table_page"" align=""center"">"
Response.Write "<nobr>(共有<font color=""red"">" & RecordCount & "</font>条   共有<font color=""red"">" & PageTotal & "</font>页)</nobr>"
Response.Write "</td>"
Response.Write "<td class=""table_page"" align=""center"">"
Response.Write "<input type=""hidden"" id=""pagecount"" name=""pagecount"" value=""" & PageTotal & """>"
Response.Write "<input type=""hidden"" id=""jumpurl"" name=""jumpurl"" value=""" & jumpurl & """>"
Response.Write "<input type=""hidden"" id=""getfield"" name=""getfield"" value=""" & getfield & """>"
'if cint(PageNo)>0 then
Response.Write "<nobr>跳转到第<INPUT type=""text"" id=""gopage"" name=""gopage"" class=""inputtext"" style=""width:30;"" onkeypress=""if (event.keyCode==13){event.returnValue=false;dogopage()}"" value=""" & PageNo & """>页<INPUT class=""button"" type=""button"" onclick=""dogopage()"" value=""跳转""></nobr>"
'end if
Response.Write "</td>"
Response.Write "<td class=""table_page"" align=""center"">"
Response.Write "<a href=""" & jumpurl & "?page=1"
if len(getfield)>0 then Response.Write "&" & getfield
Response.Write """"
if not(cint(PageNo)>1) then Response.Write " disabled onclick=""return false;"""
Response.Write " ondragstart=""return false;""><font face=""Webdings"">9</font>最前页</a>"
Response.Write "</td>"
Response.Write "<td class=""table_page"" align=""center"">"
'Response.Write " "
Response.Write "<a href=""" & jumpurl & "?page=" & cint(PageNo)-1
if len(getfield)>0 then Response.Write "&" & getfield
Response.Write """"
if not(cint(PageNo)>1) then Response.Write " disabled onclick=""return false;"""
Response.Write " ondragstart=""return false;""><font face=""Webdings"">7</font>上一页</a>"
Response.Write "</td>"
Response.Write "<td class=""table_page"" align=""center"">"
'Response.Write " "
Response.Write "<a href=""" & jumpurl & "?page=" & cint(PageNo)+1
if len(getfield)>0 then Response.Write "&" & getfield
Response.Write """"
if not(cint(PageNo)<PageTotal) then Response.Write " disabled onclick=""return false;"""
Response.Write " ondragstart=""return false;"">下一页<font face=""Webdings"">8</font></a> "
Response.Write "</td>"
Response.Write "<td class=""table_page"" align=""center"">"
'Response.Write " "
Response.Write "<a href=""" & jumpurl & "?page=" & PageTotal
if len(getfield)>0 then Response.Write "&" & getfield
Response.Write """"
if not(cint(PageNo)<PageTotal) then Response.Write " disabled onclick=""return false;"""
Response.Write " ondragstart=""return false;"">最后页<font face=""Webdings"">:</font></a>"
Response.Write "<td align=""center"" class=""table_page""> </td>"
Response.Write "</td>"
Response.Write "</tr>"
Response.Write "</table>"
end sub
%>
lzt_6666 2003-09-27
  • 打赏
  • 举报
回复
用循环控制列数.
<%
set conn=server.createobject("adodb.connection")
set rs=server.createobject("adodb.recordset")
conn.open "driver={microsoft access driver (*.mdb)};dbq="&server.mappath(表.mdb)
set rs.open "select * from 表",conn,1,1
%>
<table>
<%
do while not rs.eof
i=1
%>
<tr>
<%
if (i mod 5)<>0 then
%>
<td>
response.write rs("idproduct"),rs("productname"),rs("price")
</td>
<%
i=i+1
end if
%>
</tr>
<%
rs.movenext
loop
set rs=nothing
set conn=nothing
%>
avonqin 2003-09-27
  • 打赏
  • 举报
回复
修正:
rs.Pagesize=9
改为:
rs.Pagesize=45
leon168 2003-09-27
  • 打赏
  • 举报
回复
pg=clng(request("page"))'设置一个存放页的变量
'此处链接你的数据库
if not rs.eof then
rs.pagesize=2'设置每页多少个记录
if request("page")="" then
pg=1
rs.absolutepage=1
else
rs.absolutepage=request("page")
end if
end if
'此处放你的其他程序
<%for i=1 to rs.pagesize
if rs.eof then
exit for
end if
%>
'此处放你的记录
<%rs.movenext
next
%>
----下面是分页
<form action=你的页面.asp method=post>'此表单为你在文本框输入页数,直接跳转
<td height="19" colspan="8" class="f"> 
<% if pg<1 then pg=1
if pg>rs.pagecount then pg=rs.pagecount

if pg<>1 then
response.write "[<a href=你的页面.asp?page=1>第一页</a>] "
response.write "[<a href=你的页面.asp?page="&(pg-1)&">上一页</a>] "
end if

if pg<>rs.pagecount then
response.write "[<a href=你的页面.asp?page="&(pg+1)&">下一页</a>] "
response.write "[<a href=你的页面.asp?page="&rs.pagecount&">最后一页</a>] "
end if
%>
输入页数:
<input size=3 name="page">
[记录共<font color=CE3100><%=rs.recordcount%></font>条/<font color=CE3100><%=rs.PageCount%></font>页/当前第<font color=CE3100><%=pg%></font>页]
     
</form>

** 精英论坛 **
http://bbs.osboard.com
avonqin 2003-09-27
  • 打赏
  • 举报
回复
与 http://www.trdflower.com.cn一模一样代码

<% …………
rs.Pagesize=9
TotalPages = rs.pagecount
rs.AbsolutePage =pageno
%>
<table cellspacing=0 cellpadding=0 width="98%" border=0 >
<tr>
<td valign=top >
<%
x = 0
For x = 1 to rs.PageSize
If rs.eof then
Exit For
end if
Response.Write "<table>"
Response.Write "<tr><td valign=top align=center width=100 ><img src=images/"&rs("productimage")&" width=65 height=100 border=0></td></tr>"
Response.Write "<tr><td align=center><font class=f12>"&rs("productname")&"<BR>"&rs("price")&"</td></tr>"
Response.Write "</table>"
if ( x mod 5 = 0 ) then
Response.Write "</td></tr>"
Response.Write "<tr><td valign=top >"
rs.MoveNext
else
Response.Write "</td><td width=8> </td><td valign=top >"
rs.MoveNext
end if
Next
%>
 </td>
</tr>
</table>
不老书生 2003-09-27
  • 打赏
  • 举报
回复
那不是分页,只是换行显示!下面代码可是现写的!


Set conn=Server.CreateObject("ADODB.Connection")
set rs=server.createobject("adodb.recordset")
conn.open ="driver={sql server};server=XXX; UID=XX;PWD=XXX;DATABASE=XXX;DSN=XXX"
rs.activeconnection=conn
rs.open("select * from table")


k=0
do while not rs.eof

productname=rs("productname")
if (k mod 5)=0 then
response.write "<br>"
end if
k=k+1
rs.movenext
loop

rs.close
set rs=nothing
set conn=nothing
tigerwen01 2003-09-27
  • 打赏
  • 举报
回复
这个容易,我给你代码:
<%for i=0 to rs.recordcount%>
<tr>
<%for j=1 to 5%>
<td><%rs("roductname")%></td>
<%
rs.MoveNext
if rs.eof then
exit for
next
%>
</tr>
<%
rs.MoveNext
if rs.eof then
exit for
next
%>

注:至于在页面上控制显示多少行,那要看记录的多少,更多时可以用分页技术。

28,406

社区成员

发帖
与我相关
我的任务
社区描述
ASP即Active Server Pages,是Microsoft公司开发的服务器端脚本环境。
社区管理员
  • ASP
  • 无·法
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧