asp分页的方法
时间:2010-09-15 来源:hlhcto
一、根据自动编号ID每页的最大最小值来分页,函数GetMaxIdForPager获取每页的最大ID值,GetMinIdForPager获取每页的最小ID值,参数说明:
database:表名
perpagerecs:每页记录数
curpage:当前页码
orderby:排序方式asc or desc
wherestr:where语句
orderbycolumn:排序字段
- ''获取当前页记录的最大ID
- function GetMaxIdForPager(database,perpagerecs,curpage,orderby,wherestr,orderbycolumn)
- if wherestr="" then
- wherestr="1=1"
- end if
- if curpage>1 then
- tempage=curpage-1
- temprecs=tempage*perpagerecs*1
- temprecs2=curpage*perpagerecs*1
- if orderby="desc" then
- temp_minid=conn.execute("select min(id) from "&database&" where id in(select top "&temprecs&" id from "&database&" where "&wherestr&" order by "&orderbycolumn&" desc)")(0)
- maxid=conn.execute("select top 1 id from "&database&" where id<"&temp_minid&" and "&wherestr&" order by "&orderbycolumn&" desc")(0)
- else
- maxid=conn.execute("select max(id) from "&database&" where id in(select top "&temprecs2&" id from "&database&" where "&wherestr&" order by "&orderbycolumn&" asc)")(0)
- end if
- elseif curpage=1 then
- if conn.execute("select count(*) from "&database&" where "&wherestr&"")(0)>0 then
- if orderby="desc" then
- sql="select top 1 id from "&database&" where "&wherestr&" order by "&orderbycolumn&" desc"
- maxid=conn.execute("select top 1 id from "&database&" where "&wherestr&" order by "&orderbycolumn&" desc")(0)
- else
- maxid=conn.execute("select max(id) from "&database&" where id in(select top "&perpagerecs&" id from "&database&" where "&wherestr&" order by "&orderbycolumn&" asc)")(0)
- end if
- else
- maxid=1
- end if
- end if
- GetMaxIdForPager=maxid
- end function
- ''获取当前页记录的最小ID
- function GetMinIdForPager(database,perpagerecs,curpage,orderby,wherestr,orderbycolumn)
- if wherestr="" then
- wherestr="1=1"
- end if
- if curpage>1 then
- tempage=curpage-1
- temprecs=tempage*perpagerecs*1
- temprecs2=curpage*perpagerecs*1
- if orderby="desc" then
- minid=conn.execute("select min(id) from "&database&" where id in(select top "&temprecs2&" id from "&database&" where "&wherestr&" order by "&orderbycolumn&" desc)")(0)
- else
- temp_maxid=conn.execute("select max(id) from "&database&" where id in(select top "&temprecs&" id from "&database&" where "&wherestr&" order by "&orderbycolumn&" asc)")(0)
- minid=conn.execute("select top 1 id from "&database&" where id>"&temp_maxid&" and "&wherestr&" order by "&orderbycolumn&" asc")(0)
- end if
- elseif curpage=1 then
- if conn.execute("select count(*) from "&database&" where "&wherestr&"")(0)>0 then
- if orderby="desc" then
- minid=conn.execute("select min(id) from "&database&" where id in(select top "&perpagerecs&" id from "&database&" where "&wherestr&" order by "&orderbycolumn&" desc)")(0)
- else
- minid=conn.execute("select top 1 id from "&database&" order by "&orderbycolumn&" asc")(0)
- end if
- else
- minid=1
- end if
- end if
- GetMinIdForPager=minid
- end function
使用方法,例:
- wherestr="UserId="&request.cookies("memberid")&" and PostId<>0"
- tolrecs=conn.execute("select count(*) from luoai_forum where "&wherestr&"")(0)
- maxid=GetMaxIdForPager("bbs_forum",5,2,"desc",wherestr,"id")
- minid=GetMinIdForPager("bbs_forum",5,2,"desc",wherestr,"id")sql="select * from luoai_forum where id>="&minid&" and id<="&maxid&" and "&wherestr&" order by id desc"set rs_u=server.CreateObject("ADODB.Recordset")
- rs_u.open sql,conn,1,1
- if not rs_u.eof then
- do while not rs_u.eof
- ....
- rs_u.movenext
- loop
- end if
- rs_u.close
相关阅读 更多 +