11月03, 2012

asp内容分页原理

asp里在一个列表里如果想分页可以接受下分页的参数,然后在判断是否为空、是否为数字;然在设置每页显示多少条数据,在判断是否大于总页码...

那么内页呢?内页不能这样了,内页呢可以使用分页符号。比如:{$page$},当出现这个的时候则是否分页了,怎么判断呢?

比如你的一段文章这样写的:

其实你点击上传只是点击了浏览这个按钮,那么会让你选择文件,这步就来了重点了,你得监听这个上传浏览的文本框是否改变值,如果改变则提交下表单{$page$}这个就会提交给Iframe了,然后监听Iframe的返回值,比如你程序里上传成功返回的1,那么你监听他的值是否为1,如果为1则说明上传成功,否则为上传失败了。那么怎么监听这个Iframe呢,可以使用jquery的load()参数,也可以使用onload等。

那么到{$page$}的地方以前的都是第一页,下面到在出现{$page$}为止是第二页,当然如果没有分页符号了则是否直接到底了,没有第三页了。看程序代码:

dim content,page,Content_Tmp,Page_Count,OutContent
Content=rs("Content")
page=trim(request.QueryString("page"))
if page="" then page=1
'当然这里还要判断page是否合法,比如是否为正确的数字等
If InStr(Content,"{$page$}")>0 Then'如果包含分页符号则
 Content_Tmp = Split(Content,"{$page$}")'储存个变量用来分割内容
 Page_Count = Ubound(Content_Tmp)+1'让Page_Count=分割了多少个,也就是几页,这里+1是为了防止下标错误
 If page> Page_Count Then page = Page_Count'如果当前页面大于总页则让当前等于总页
 OutContent = Content_Tmp(page-1)'让输出变量=分割出来的内容里的第Page-1页面,比如你有2个分页符号,那么就是三页,Content_Tmp(0)就是第一页,Content_Tmp(1)就是第二页...
Else
 OutContent = Content'如果不包含分页符则直接等于
End If
response.write(outcontent)'输出内容

那么上面的asp代码你应该可以看明白吧?

咱们现在内容是输出了,但是还缺少的就是内页分页后的导航啊,这样也好做

dim iPage,URL
If Page_Count>1 Then'如果总页大于1才显示内页分页导航
 Response.Write("<div>")
 For iPage=1 To Page_Count'循环,不解释
 If iPage = 1 Then
 URL = ID & ".html"'其中的ID是你的新闻ID,这里只是个模拟,实际的URL你自己根据自己的情况更改
 Else
 URL = ID & "_" & iPage & ".html"
 End If
 If iPage = thisPage Then
 Response.Write("<strong style=""color:#FF0000;"">第" & iPage & "页</strong> ")
 Else
 Response.Write("<a href=""" & URL & """ title='点击进入第"&ipage&"页'>第" & iPage & "页</a> ")
 End If
 Next
 Response.Write("</div>")
End If

到这里一个内页的分页已经OK了,这里是以静态URL为例子,当然你要根据自己的网站需求而更改URL。比如这里的是 html/1.html 这里1是文章的ID,如果有第二页就是 html/1_2.html ,如果你想动态的话只是改变下URL就OK了。

学习吧说到分页了,其实还有自动分页,比如多少个字符自动分页,只是那个还得N多判断,比如你分页的时候总不能把人家图片给分没吧,你分页的第1000个字符正好是个a标签该怎么办?

自动内页分页学习吧正在研究,出来后在给大家分享!

本文链接:https://xuexb.com/post/101.html

-- EOF --

发表于 2012年11月03日 15:57:45 ,添加在分类 后端技术 下 ,并被添加「 asp 」标签 ,最后修改于 2017年04月19日 11:55:22

提醒: 本文最后更新于 3189 天前,文中所描述的信息可能已发生改变,请谨慎使用。

Comments

评论加载中...

注:如果长时间无法加载,请针对 disq.us | disquscdn.com | disqus.com 启用代理。

AltStyle によって変換されたページ (->オリジナル) /