如何正确显示每页记录条数?

jiugeyan 2011-04-09 03:52:52
我的记录数正确,但点任何一页显示得都是相同信息.而已经显示的记录数也不正确,rs.PageSize =5 '每页记录条数 ,而只要能搜索到的内容,它能全显示出来

<%
leibie=request("leibie")
fangshi=request("fangshi")
keyword=request("keyword")
%>
搜索:<font color="#FF9900"><%=leibie%> - <%=fangshi%></font> 中的关键字:<span style="background-color: #D0D0D0"><%=keyword%></span> <br>
<%
strConn = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source="+Server.mappath("db1.mdb")+";Persist Security Info=False"
set conn = Server.CreateObject("ADODB.Connection")
conn.open strConn
set rs=server.CreateObject("adodb.recordset")

'查询“leibie”表,"fangshi"字段,“keyword”关键字

sql="select * from "&leibie&" where "&fangshi&" like '%"&keyword&"%' order by id desc"
rs.open sql,conn,1,3
if rs.eof then
response.Write("没有搜索到相关内容<br><a href='javascript:history.go(-1)'>返回重新搜索</a>")
else
response.Write("相关内容如下:<br>")
end if
while not rs.eof
%>
<a href="view_view.asp?leibie=<%=leibie%>&id=<%=rs("id")%>"><img src="images/arrow.gif" align="middle"><%=rs("标题")%>   <%=rs("时间")%></a><br>
<%
rs.movenext
wend
%>

<!--下面是后加上一页,正调试 -->

<%
set rs=server.CreateObject("adodb.recordset")
rs.open "select * from "&leibie&" where "&fangshi&" like '%"&keyword&"%' order by id desc" ,conn,1,3

if err.number<>0 then
response.write "数据库中无数据"
end if

'------------------------------------------分页开始
if rs.recordcount=0 then
respose.write "没有数据"
else
rs.PageSize =5 '每页记录条数
iCount=rs.RecordCount '记录总数
iPageSize=rs.PageSize
maxpage=rs.PageCount
page=request("page")


if Not IsNumeric(page) or page="" then
page=1
else
page=cint(page)
end if

if page<1 then
page=1
elseif page>maxpage then
page=maxpage
end if

rs.AbsolutePage=Page

if page=maxpage then
x=iCount-(maxpage-1)*iPageSize
else
x=iPageSize
end if

For i=1 To x
'根据实际从库中获得数据并显示数据
'-------------------------------------------

'data=rs("data")
'response.write"DATA:"&data

'-------------------------------------------

rs.movenext
next
call PageControl(iCount,maxpage,page,"border=0 align=center","<p align=center>")
end if
rs.close
set rs=nothing

Sub PageControl(iCount,pagecount,page,table_style,font_style)
'生成上一页下一页链接
Dim query, a, x, temp
'action = "http://" & Request.ServerVariables("HTTP_HOST") & Request.ServerVariables("view_view")
action ="http://127.0.0.1:99/nongjiayuanasp/search/view.asp"
query = Split(Request.ServerVariables("QUERY_STRING"), "&")
For Each x In query
a = Split(x, "=")
If StrComp(a(0), "page", vbTextCompare) <> 0 Then
temp = temp & a(0) & "=" & a(1) & "&"
End If
Next

Response.Write("<table width=100% border=0 cellpadding=0 cellspacing=0 bgcolor=#f1f1f1>" & vbCrLf )
Response.Write("<form method=get onsubmit=""document.location = '" & action & "?" & temp & "Page='+ this.page.value;return false;""><TR bgcolor=#f1f1f1>" & vbCrLf )
Response.Write("<TD align=center height=35>" & vbCrLf )
Response.Write(font_style & vbCrLf )

if page<=1 then
Response.Write ("首 页 " & vbCrLf)
Response.Write ("上一页 " & vbCrLf)
else
Response.Write("<A HREF=" & action & "?" & temp & "Page=1>首 页</A> " & vbCrLf)
Response.Write("<A HREF=" & action & "?" & temp & "Page=" & (Page-1) & ">上一页</A> " & vbCrLf)
end if

if page>=pagecount then
Response.Write ("下一页 " & vbCrLf)
Response.Write ("尾 页 " & vbCrLf)
else
Response.Write("<A HREF=" & action & "?" & temp & "Page=" & (Page+1) & ">下一页</A> " & vbCrLf)
Response.Write("<A HREF=" & action & "?" & temp & "Page=" & pagecount & ">尾 页</A> " & vbCrLf)
end if

Response.Write(" 页次:" & page & "/" & pageCount & "页" & vbCrLf)
Response.Write(" 共有" & iCount & "个记录" & vbCrLf)
Response.Write(" 转到" & "<INPUT CLASS=wenbenkuang TYEP=TEXT NAME=page SIZE=2 Maxlength=5 VALUE=" & page & ">" & "页" & vbCrLf & "<INPUT CLASS=go-wenbenkuang type=submit value=GO>")
Response.Write("</TD>" & vbCrLf )
Response.Write("</TR></form>" & vbCrLf )
Response.Write("</table>" & vbCrLf )
End Sub
%>
...全文
353 5 打赏 收藏 转发到动态 举报
写回复
用AI写文章
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
jiugeyan 2011-04-10
  • 打赏
  • 举报
回复
这个感觉还可以,呀,各位会的帮帮修改一下.谢谢
se7en 2011-04-09
  • 打赏
  • 举报
回复

private PagedDataSource pds()
{
string connstring = "provider=Microsoft.Jet.OleDb.4.0;" + "Data Source=" + Server.MapPath("admin/runrich.mdb");
//声明一个字符串,后面随时可以用
OleDbConnection con = new OleDbConnection(connstring);
//初始化连接
OleDbDataAdapter sda = new OleDbDataAdapter("SELECT [id], [title], [sendtime] FROM [news] ORDER BY [sendtime] DESC", con);
//初始化一个SqlDataAdapter,并给出查询语句
DataSet ds = new DataSet();
//初始化一个DataSet
sda.Fill(ds, "name");
//将上面查询到的数据填充到name表中

PagedDataSource pds = new PagedDataSource();
//初始化一个PagedDataSource,允许控件分页
pds.DataSource = ds.Tables["name"].DefaultView;
//将上面的ds转换成标准数据视图
pds.AllowPaging = true;
//允许分页
pds.PageSize = 9;
//每页大小为5
pds.CurrentPageIndex = Convert.ToInt32(Request.QueryString["page"]);
//设置当前页
return pds;
//将处理完毕的pds对象发出去
}

vista8799 2011-04-09
  • 打赏
  • 举报
回复
这个很悲剧~~~
ejianya 2011-04-09
  • 打赏
  • 举报
回复
可以使用分页控件,然后在数据库进行分页,返回的时候,返回两个数据集,一是分页后的数据,二是这个SQL语句得到的记录总数。这样就OK了。我目前就是这样使用,查询速度快,还能进行很好的翻页。
猜我是几娃 2011-04-09
  • 打赏
  • 举报
回复
你的这个分页程序搞得也太啰嗦了。。。。重新找一个吧,网上很多很简洁的,都现成的

28,390

社区成员

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

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