问题:ASP页面排序问题.

做了个ASP展品展示页面,我想对产品进行按时间排序,名称排序,价格排序.<%a="shichangjia"b="shichangjiae"c="bookname"d="a... 做了个ASP展品展示页面,我想对产品进行按时间排序,名称排序,价格排序.

<%
a="shichangjia"
b="shichangjiae"
c="bookname"
d="adddate"
%>
<a href="?scj= <%=a%>">价格从低到高 </a> <br>
<a href="?scje= <%=b%>">价格从高到低 </a> <br>
<a href="?pname= <%=c%>">按名称排序 </a> <br>
<a href="?addtime= <%=d%>">按时间排序 </a> <br> <br>

<%
aa=request("scj")
bb=request("scje")
cc=request("pname")
dd=request("addtime")

if aa= "aa" then
set rsp=server.createobject("adodb.recordset")
sql = "select top 100 * from products order by shichangjia asc"
rsp.open sql,conn,1,3

elseif bb= "bb" then
set rsp=server.createobject("adodb.recordset")
sql = "select top 100 * from products order by shichangjia desc"
rsp.open sql,conn,1,3

elseif cc= "cc" then
set rsp=server.createobject("adodb.recordset")
sql ="select top 100 * from products order by bookname desc"
rsp.open sql,conn,1,3

elseif dd= "dd" then
set rsp=server.createobject("adodb.recordset")
sql = "select top 100 * from products order by adddate desc"
rsp.open sql,conn,1,3
else
set rsp=server.createobject("adodb.recordset")
sql = "select top 100 * from products"
rsp.open sql,conn,1,3
do while not rsp.eof
%>
我想用超链接的方式进行排序,调试的时候可以显示,但就是点排序的时候,没有进行任何动作.我这样写对么?请各位帮忙纠正一下.谢谢!!
展开
 我来答
百度网友66a8d48e5
2008-09-25 · TA获得超过7687个赞
知道大有可为答主
回答量:3002
采纳率:12%
帮助的人:3912万
展开全部
这种方法可以实现,但对用数据库频繁调用,性能不佳。

至于你的错误是因为你传值的错误导致的!<a href="?scj= <%=a%>">这一句已经将a的值代入了,所以取值时,aa=request("scj")时取出的不是'aa',而是"shichangjia",所以你不会成功!所以要改动的!同样,你使用了不同的属性值对,如shichangjia用的是SCJ而其他的用的是其他的,所以如果客户端使用了COOKIE的话,每次aa=request("scj")都能取出值的!这时无法进行对BB的取值,也就是说,你在AA时所建立的
set rsp=server.createobject("adodb.recordset")
sql = "select top 100 * from products order by shichangjia asc"
有效,再建立BB的,很显然,造成内存的极大浪费!这不是你所想要的吧?建议用一个就可以了!如下:
<a href="?scj= <%=a%>">价格从低到高 </a> <br>
<a href="?scj= <%=b%>">价格从高到低 </a> <br>
<a href="?scj= <%=c%>">按名称排序 </a> <br>
<a href="?scj= <%=d%>">按时间排序 </a> <br>
当然取的时间也是一个就可以了:
aa=request("scj");拿取出的值与shichangjia等比较就可以了!至少不会出现我说的那种情况!顺便说一句,能少写几句就少写几句;所以IF语句只用来生成SQL语句就行,至于打开是打以统一的!如:
if aa="shichuangjia" then
sql = "select top 100 * from products order by shichangjia asc"

elseif bb= "shichuangjia" then

sql = "select top 100 * from products order by shichangjia desc"
.......
end if

set rsp=server.createobject("adodb.recordset")
rsp.open sql,conn,1,3
do while not rsp.eof
这样不是清爽些吗?一般是这样写的,但效率不行,建议你用其他的方式。
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式