哦了,上面讲述的部份是本次ajax分页教程中前端的核心部份,没有讲述的内容在前几篇的ajax教程里都有讲解.下面我们来看下服务端的源码并分析该源码 复制代码 代码如下: <!--#include file="Conn.Asp"--> <% "出自:http://Www.Web666.Net "作者:康董 "如需转载请务必保留以上信息 "定义一个变量,来保存xml数据 xml="<?xml version="1.0" encoding="gb2312"?><body>" action=Request.QueryString("action") "使用get方式接受一个action来判断客户端想要执行什么操作 Select case action case "read" "如果为read则执行读取数据的操作 Call Read case else xml = xml&"<msg>请求参数错误,请不要试图非法操作!</msg>" End Select xml=xml&"</body>" Response.Clear Response.ContentType="text/xml" Response.CharSet="gb2312" Response.write xml Response.End
Sub Read "自定义的读取数据过程 Call OpenConn "打开数据库链接 Current_Page = Request("Current_Page") "当前的页码 PageCount = request("PageCount") "当前页显示的条数 xml = xml&"<page>"&pagecount&"</page>" If Current_Page = "" Or Not IsNumEric(Current_Page) Then Current_Page = 1 End If If PageCount = "" Or Not IsNumEric(PageCount) Then "判断条数输入是否正确 PageCount = 5 End If Sql = "Select count(*) From page_table" "读取page_table表中共有多少条数据 Set Rs = Conn.Execute(Sql) "执行sql语句 xml = xml&"<allrecord>"&Rs(0)&"</allrecord>" If Current_Page = 1 Then "如果是第1页 Sql = "Select Top "&PageCount&" * From page_table order by id desc" Else Sql = "Select Top "&PageCount&" * From page_table where id<(Select Min(id) From (Select Top "&((Current_Page-1)*PageCount)&" id From page_table order by id desc)) order by id desc" End If Set Rs=Conn.Execute(Sql) While Not Rs.Eof xml = xml&"<list>" xml = xml&"<id>"&Rs("id")&"</id>" xml = xml&"<content>"&Rs("content")&"</content>" xml = xml&"</list>" Rs.MoveNext "下一条 Wend End Sub %>
1、Current_Page = Request("Current_Page") :接收客户端ajax使用url参数传递过来的Current_page,请求的页码 2、PageCount = Request("PageCount") :接收客端ajax使用url参数传递过来的PageCount,每页显示的条数 3、然后分别判断Current_Page是否为空.或者是否为数字.如果不符合条件.则将Current_page等于1.如果PageCount也为空,或者不是数字,则将PageCount等于5,也就是每页读取5条数据 4、Sql = "Select count(*) From page_table"这条sql的作用是读取表内一共有多少条数据,也就是我们在前端代码所说的总条数.将这个总条数读取以后并保存在一个allrecord的元素里.然后传回给客户端.客户端每次读取数据都会获取这个数字.以该数字为依据,进行页码的创建. 5、If Current_Page = 1 Then 判断Cruuent_Page是否为1,如果为1则执行:Sql = "Select Top "&PageCount&" * From page_table order by id desc" 该sql语句的意思很简单,只读取表内的"PageCount"条数据.如果你在前端没有设置要读取的条数.那么 PageCount等于5,也就是只读取5条数据.读取顺序为desc,倒序读取! 6、Else如果Crrent_Page不等于1,只有在你点击了页码列表中非第1页时,Current_Page才不会是1,那么就执行:Sql = "Select Top "&PageCount&" * From page_table where id<(Select Min(id) From (Select Top "&((Current_Page-1)*PageCount)&" id From page_table order by id desc)) order by id desc",这条sql语句是分页的核心.他的大致意思是说:在表中读取PageCount条数据.这些数据的id必须小于已经显示出来的数据中id最小的那条数据.比如你点击的是第3页,每页显示的条数为5条.那么这第三页中要显示的数据的id,必须要小于第二页id最小的那条数据,因为是倒序读取.你明白了吗?如果你根本无法理解该Sql的意思.请恶补Sql的相关知识.下面的代码是从数据库里读取数据,我在前几篇都有过详细的讲解.ajax分页至此完毕! 提示:<!--#include file="Conn.Asp"-->Conn.asp是我的数据库链接文件.没什么特别.你应该可以自己写一个出来.网上也有很多现成的代码.本次读取的数据库表名为:page_table 字段分别为ID(自动编号),content(数据内容) 今天就讲到这里,有什么不明白地方.请加 ajax技术交流群:110167482