前台的js代码这里就不介绍了,我们只看后台的动态分页代码。这里我们用的是asp程序来演示效果。
我们接收的参数有只一个,那就是page,值是一个数字,这表示第page页的数据。
[{"id":"id的值","title":"title的值","image":"image的值","preview":"preview的值","content":"content的值"},{第二个json},{第d三个json},,,]
具体代码如下:
<!--#include file="config.asp"-->
<%
sql="select * from tb_Image where log_CateId=2"
rs.open sql,conn,1,1
If Not rs.EOF Then
rs.pagesize=20
dim page: page = Trim(request.Querystring("page"))
If Not IsNumeric(page) Then
page = 1
Else
page = CInt(page)
End If
if page<1 then page=1
if page>rs.pageCount then RspEnd "[]"
rs.absolutepage=page
totalrecord=rs.recordcount
pageCount=rs.PageCount
End If
If Not rs.EOF Then
Dim tmp: tmp=""
Do While Not rs.EOF
If tmp="" Then
tmp = GetOutputJson(rs("log_id"),rs("log_Title"),rs("log_Col1"),rs("log_Content"))
Else
tmp = tmp & "," & GetOutputJson(rs("log_id"),rs("log_Title"),rs("log_Col1"),rs("log_Content"))
End If
rs.MoveNext
Loop
RspW "[" & tmp & "]"
End If
rs.close: conn.close
Function GetOutputJson(id,title,image,content)
Dim tmp: tmp=""
tmp = tmp & "{""id"":" & id
tmp = tmp & ",""title"":""" & title & """"
tmp = tmp & ",""image"":""" & image & """"
tmp = tmp & ",""preview"":""" & image & """"
tmp = tmp & ",""content"":""" & content & """}"
GetOutputJson = tmp
End Function
最后,在这个动态分页页面中要注意,如果是传入的page值大于当前记录集中的pageCount时,就不要输出内容(或者说只输出“[]”)。我们一般在做分页的时候,喜欢这样去设置:当page值>rs.pageCount时,设置page=rs.pageCount。这种做法,在瀑布流中就会出问题,会出现整个瀑布流永远无穷无尽的情况。有兴趣的朋友可以去试一下,将if page>rs.pageCount then RspEnd "[]" 这句改为if page>rs.pageCount then page=rs.pageCount,你的瀑布流将流不尽了:)