出处:http://www.18897.com/shoujiwangzhankaifa/0805105.html
我们将透过新闻列表文件的编写,来学习ASP在WAP站点应用站的文章列表与列表分页技术。同样,我们要将文件的编码和内容的编码转成UTF-8,插入配置文件。
将文件的编码保存为UTF-8(文件--另存为--编码:选择“UTF-8”--保存)
复制以下代码:
<%@LANGUAGE="VBSCRIPT" CODEPAGE="65001"%>
<!--#i nclude file="inc/config.asp"-->
<%
Response.ContentType="text/vnd.wap.wml;charset=UTF-8" '将文件的格式转换成wml,编码为UTF-8
%>
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE wml PUBLIC "-//WAPFORUM//DTD WML 1.1//EN"
"http://www.wapforum.org/DTD/wml_1.1.xml">
<wml>
<head>
<meta http-equiv="Cache-Control" content="max-age=0"/><!-- 每次都需通过连接服务器调用本页内容 -->
<meta http-equiv="Cache-Control" content="no-cache"/><!-- 禁止浏览器从缓存中访问页面内容 -->
</head>
<card id="NewsList" title="新闻列表">
<p align="left"><!-- 页面居左对齐 --></p>
</card>
</wml>
接着,我们将在<p align="left"> </p>之间填入新闻列表的相关代码,代码如下:
<%
Dim ID,rs
ID=int(request.QueryString("ID"))
Call openConn() '打开数据库
Response.Write (conn.execute("Select Name from [NewsType] where ID="& ID &"")(0))&"新闻列表
<br/>" '输出类别名
%>
=*=*=*=*=*=<br/>
<%
Set rs=conn.execute("Select ID,title From [NewsContent] where typeID="& ID &" order by ID
desc") '读取新闻内容表
If Not rs.eof Then
Dim i,PageSize
PageSize=10 '每一页显示的条数
For i=1 To PageSize '根据每一页的条数进行循环
If rs.eof Then Exit For '如果循环到了尽头,则跳出循环
%>
<a href="NewsShow.asp?ID=<%=rs(0)%>"><%=rs(1)%></a><br/>
<%
rs.moveNext '游标指到下一条记录
Next
Else
%>
暂时没有新闻!
<%
End If
Call rsClose()
Call connClose()
%>
打开浏览器测试,输入地址:http://localhost/NewsList.asp?ID=1进行调试,正常显示效果:
现在,我们插入分页代码。在PageSize=10 和 For i=1 To PageSize之间插入以下代码:
Dim Count,page,pagecount,gopage '定义相关变量
gopage="NewsList.asp?ID="&ID&"&"
Count=conn.execute("Select count(ID) from [NewsContent] where typeID="& ID &"")(0)
'读取新闻总数 7WAP
page=int(request.QueryString ("page"))
if page<=0 or page="" then page=1 '默认为第一页
pagecount=(count+pagesize-1)/pagesize '计算出页数
rs.move(pagesize*(page-1)) '将游标指到每一页的第一条记录
刷新http://localhost/NewsList.asp?ID=1页面,查看效果!再把PageSize=10改成PageSize=2,刷新页面再看效果。接下来,我们再把分页的链接加上去,就基本完成了分页的操作了!
将以下代码复制到在Next 与 Else之间:
response.write ("共:"&count&"条,"&page&"/"&pagecount&"页")
if page-pagecount<0 then response.write "<br/><a href="""&gopage&"page="&page+1&""">
下页-</a><a href="""&gopage&"page="&pagecount&""">尾页</a>"
if page>1 then response.write "<br/><a href="""&gopage&"page="&page-1&""">上页-
</a><a href="""&gopage&"page=1"">首页</a>"
'//下面这一句,是让用户通过输入框输入页数,然后通过链接直接转向该页
if pagecount>1 then response.write "<br/><input name=""page"" format=""*N""
value="""&page&""" type=""text"" maxlength=""5"" emptyok=""true""/><br/><a
href="""&gopage&"page=$(page)"">[跳转到该页]</a>"
再刷新http://localhost/NewsList.asp?ID=1页面,
最后,我们在重新把PageSize=2改成PageSize=10,再插上换行符和返回首页的链接,就大功告成了!
<br/>=*=*=*=*=*=<br/>
<a href="/index.asp">返回网站首页</a><br/>
打开浏览器测试运行看看,页面是不是出来了!