优化过的asp翻页代码
来源:互联网 发布:dcs编程语言 编辑:程序博客网 时间:2024/05/17 06:30
分页程序无疑是许多网络程序功能中一个比较麻烦的东西,事实上现在为止绝大部分人还是在使用传统的分页方法(Rs.PageSize=xx),而了解数据库操作的人都知道,这种传统方式有个弊端:第一次打开页面时,它会预读所有的记录集,这当在数据大的时候,这将是致命的,而且接下来的翻页速度也会非常慢,很占用资源。对于十万数量级以上的数据库这种传统分页方式已经显得非常无力,更别说百万级了(根本没法操作)。基于这种原因,促使我做了本通用程序。
<%
'url为翻页地址后缀“&”开头
url="&classid="&classid&""
%>
'url为翻页地址后缀“&”开头
url="&classid="&classid&""
%>
sql配置代码 (倒序排列)
'---------------------------------------------------------------------------------------开始
'配置
'sql条件 没 请写 1=1
sql="1=1"
'统计字段
sql_id="id"
'显示字段
sql_Field="id,title"
'查询表名
sql_table="table"
'排序字段
sql_order="id"
'每页记录
PageSize=30
'获得总数
set rs=conn.execute("SELECT count("&sql_id&") from "&sql_table&" where "&sql&" ")
if not rs.eof then
recordcount=rs(0)
end if
rs.close
set rs=nothing
'总页数
pagecount=Abs(Int(recordcount/PageSize*(-1)))
'获得当前页码
if request("page") = "" then
page = 1
else
page = cint(request("page"))
if recordcount< page*PageSize then
page=pagecount
end if
end if
'sql语句
if page=1 then
sql="SELECT TOP "&PageSize&" "&sql_Field&" from "&sql_table&" where "&sql&" order by "&sql_order&" desc"
else
sql="SELECT TOP "&PageSize&" "&sql_Field&" from "&sql_table&" where ("&sql_order&" <(SELECT MIN("&sql_order&") FROM (SELECT TOP "&((Page-1)*PageSize)&" "&sql_order&" FROM "&sql_table&" where "&sql&" order by "&sql_order&" desc) AS tblTMP)) and "&sql&" order by "&sql_order&" desc"
end if
'---------------------------------------------------------------------------------------结束
'配置
'sql条件 没 请写 1=1
sql="1=1"
'统计字段
sql_id="id"
'显示字段
sql_Field="id,title"
'查询表名
sql_table="table"
'排序字段
sql_order="id"
'每页记录
PageSize=30
'获得总数
set rs=conn.execute("SELECT count("&sql_id&") from "&sql_table&" where "&sql&" ")
if not rs.eof then
recordcount=rs(0)
end if
rs.close
set rs=nothing
'总页数
pagecount=Abs(Int(recordcount/PageSize*(-1)))
'获得当前页码
if request("page") = "" then
page = 1
else
page = cint(request("page"))
if recordcount< page*PageSize then
page=pagecount
end if
end if
'sql语句
if page=1 then
sql="SELECT TOP "&PageSize&" "&sql_Field&" from "&sql_table&" where "&sql&" order by "&sql_order&" desc"
else
sql="SELECT TOP "&PageSize&" "&sql_Field&" from "&sql_table&" where ("&sql_order&" <(SELECT MIN("&sql_order&") FROM (SELECT TOP "&((Page-1)*PageSize)&" "&sql_order&" FROM "&sql_table&" where "&sql&" order by "&sql_order&" desc) AS tblTMP)) and "&sql&" order by "&sql_order&" desc"
end if
'---------------------------------------------------------------------------------------结束
显示代码
<%
While Not Rs.Eof
%>
<%=rs(0)%>:<%=rs(1)%><br/>
<%
Rs.MoveNext
Wend
%>
翻页
<%
response.write "<table><tr><td>"
response.Write "当前:<font color=""#FF0000"">"&page&"</font>/"&cstr(pagecount)&","
if page = "1" then
response.write " 首页 上页 "
else
response.write "<a href='?page=1"&url&"'>首页</a> "
response.write "<a href='?page="+cstr(cint(page-1))+""&url&"'>上页</a> "
end if
if cint(page) = pagecount then
response.write " 下页 尾页 "
else
response.write "<a href='?page="+cstr(cint(page+1))+""&url&"'>下页</a> "
response.write "<a href='?page="+cstr(pagecount)+""&url&"'>尾页</a> "
end if
response.Write " 直接到"
response.write "</td><form name=""form_fy""><td>"
response.Write("<select name=""select_fy"" onChange=""MM_jumpMenu(this)"" >")
for i=1 to pagecount
if cint(page)=cint(i) then
response.Write("<option value=""?page="&i&""&url&""" selected>第"&i&"页</option>")
else
response.Write("<option value=""?page="&i&""&url&""">第"&i&"页</option>")
end if
next
response.Write(" </select> ")
response.write("</td></form></tr></table>")
response.write("<script type=""text/JavaScript"">" & vbcrlf)
response.write("<!--" & vbcrlf)
response.write("function MM_jumpMenu(selectname){" & vbcrlf)
response.write(" var myindex=selectname.selectedIndex;" & vbcrlf)
response.write(" if (myindex == -1){return;}" & vbcrlf)
response.write(" window.open(selectname.options[myindex].value,""_self"");" & vbcrlf)
response.write("}" & vbcrlf)
response.write("//-->" & vbcrlf)
response.write("</script>")
%>
response.write "<table><tr><td>"
response.Write "当前:<font color=""#FF0000"">"&page&"</font>/"&cstr(pagecount)&","
if page = "1" then
response.write " 首页 上页 "
else
response.write "<a href='?page=1"&url&"'>首页</a> "
response.write "<a href='?page="+cstr(cint(page-1))+""&url&"'>上页</a> "
end if
if cint(page) = pagecount then
response.write " 下页 尾页 "
else
response.write "<a href='?page="+cstr(cint(page+1))+""&url&"'>下页</a> "
response.write "<a href='?page="+cstr(pagecount)+""&url&"'>尾页</a> "
end if
response.Write " 直接到"
response.write "</td><form name=""form_fy""><td>"
response.Write("<select name=""select_fy"" onChange=""MM_jumpMenu(this)"" >")
for i=1 to pagecount
if cint(page)=cint(i) then
response.Write("<option value=""?page="&i&""&url&""" selected>第"&i&"页</option>")
else
response.Write("<option value=""?page="&i&""&url&""">第"&i&"页</option>")
end if
next
response.Write(" </select> ")
response.write("</td></form></tr></table>")
response.write("<script type=""text/JavaScript"">" & vbcrlf)
response.write("<!--" & vbcrlf)
response.write("function MM_jumpMenu(selectname){" & vbcrlf)
response.write(" var myindex=selectname.selectedIndex;" & vbcrlf)
response.write(" if (myindex == -1){return;}" & vbcrlf)
response.write(" window.open(selectname.options[myindex].value,""_self"");" & vbcrlf)
response.write("}" & vbcrlf)
response.write("//-->" & vbcrlf)
response.write("</script>")
%>
- 优化过的asp翻页代码
- asp翻页优化代码
- asp.net 的分页翻页
- asp的翻页页码函数
- 一个简单的翻页代码
- 一个翻页的JS代码
- ASP代码的一些优化技巧
- Asp.Net异常:"由于代码已经过优化或者本机框架位于调用堆栈之上,无法计算表达式的值"的解决方法
- 【.Net码农】Asp.Net异常:"由于代码已经过优化或者本机框架位于调用堆栈之上,无法计算表达式的值"的解决方法
- 一个比较好的ASP翻页!
- ASP实现分页和翻页的效果
- ASP代码优化1
- ASP代码优化
- ASP 代码优化
- asp.net代码优化
- ASP.NET代码优化
- asp.net代码优化
- Sqlserver 索引和数据优化(附:翻页代码)
- java中使用jfree饼图的实现
- 关于VC调用Matlab的问题
- JAVA四种基本排序的总结
- java面试笔试题大汇总
- 用C#实现在ListBox中拖动排序
- 优化过的asp翻页代码
- Windows 系统文件检查命令
- 新浪QQ等站天气预报代码调用大全
- 有关C#委托与事件
- 解析#pragma指令
- 使用 AjaxPro 开发四级无刷新联动下拉框
- 官方BitTorrent协议详解
- 用ASCII的方法产生随机用户名或密码
- Varchar与char的区别