前台的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,你的瀑布流将流不尽了:)

03-14 12:24