新建数据集:PagingDataSet.xsd
SELECT * from ( select id, areaID, area, father,Row_Number() over (order by areaID) rownum FROM dbo.area) t where t.rownum >=@startRowIndex and t.rownum <=@endRowIndex 在集合中添加两个参数: startRowIndex endRowIndex
一般处理程序:PagedService.ashx
namespace ajaxApp.service { /// <summary> /// PagedService 的摘要说明 /// </summary> public class PagedService : IHttpHandler { public void ProcessRequest(HttpContext context) { context.Response.ContentType = "text/plain"; //context.Response.Write("Hello World"); string action = context.Request["action"]; if (action == "getPagecount") { var adapter = new areaTableAdapter(); int count = adapter.SelectCount().Value; int pageCount = count / 10; if (count % 10 != 0) { pageCount++; } context.Response.Write(pageCount); } else if (action == "getPagedata") { string pagenum = context.Request["pagenum"]; int iPageNum = Convert.ToInt32(pagenum); var adapter = new areaTableAdapter(); var data = adapter.GetPagedData((iPageNum - 1) * 10 + 1, (iPageNum) * 10); List<Area> list = new List<Area>(); foreach (var row in data) { list.Add(new Area() { id=row.id,areaID=row.areaID,area=row.area,father=row.father}); } //用LINQ更简单 JavaScriptSerializer jss = new JavaScriptSerializer(); context.Response.Write(jss.Serialize(list)); } } public bool IsReusable { get { return false; } } } public class Area { public long id { get; set; } public int areaID { get; set; } public string area { get; set; } public int father { get; set; } } }
前台页面:Paged.htm
<head> <title></title> <script src="../Scripts/jquery-1.4.1.js" type="text/javascript"></script> <script type="text/javascript"> $(function () { $.post("PagedService.ashx", { "action": "getPagecount" }, function (data, status) { for (var i = 1; i <= data; i++) { var td = $("<td><a href=''>" + i + "</a></td>"); $("#trPage").append(td); } $("#trPage td").click(function (e) { e.preventDefault(); $.post("PagedService.ashx",{"action":"getPagedata","pagenum":$(this).text()}, function(data,status){ var comments = $.parseJSON(data); $("#ulComment").empty(); for(var i =0;i<comments.length;i++){ var comment = comments[i]; var li = $("<li>"+comment.id+":"+comment.areaID+":"+comment.area+":"+comment.father+"</li>"); $("#ulComment").append(li); } }); }); }); }) </script> </head> <body> <ul id="ulComment"></ul> <table> <tr id="trPage"></tr> </table> </body> </html>