Ajax中怎么实现分页功能

Ajax中怎么实现分页功能,相信很多没有经验的人对此束手无策,为此本文总结了问题出现的原因和解决方法,通过这篇文章希望你能解决这个问题。

创新互联公司专注于网站建设,为客户提供成都做网站、成都网站制作、网页设计开发服务,多年建网站服务经验,各类网站都可以开发,高端网站设计,公司官网,公司展示网站,网站设计,建网站费用,建网站多少钱,价格优惠,收费合理。

首先创建前台页面MyAjaxPager.aspx

<%@ Page Language="C#" AutoEventWireup="true" CodeBehind="MyAjaxPager.aspx.cs" Inherits="AjaxDemo.AjaxPager.MyAjaxPager.MyAjaxPager" %>                    .a{}{ height:20px; line-height:20px; border-bottom:1px solid #d8dfea; clear:both;}      .b{}{ float:left; width:30px;}      .c{}{ float:left; width:500px;}                         var xmlHttp;                    function getData(pIndex) {              xmlHttp = GetXmlRequest();              xmlHttp.onreadystatechange = ShowRepeaterData;              xmlHttp.open("GET", "AjaxProcess.aspx?index=" + pIndex, true);              xmlHttp.send(null);          }           function ShowRepeaterData() {              if (xmlHttp.readyState == 4 && xmlHttp.status == 200) {                  var gridData = xmlHttp.responseText;                  var grid = document.getElementById("grid");                  grid.innerHTML = gridData;              }          }                  
                                   1             2             3             4             5             50             500             5000             50000             99999         

                                                                                                                  编号                             姓名                                                                                                         <%# Eval("Id") %>                         <%# Eval("Name") %>                                                                            
                                       
     
     
       

Ajax分页功能的无框架实现的画面很简单,就是一排index地址,当点击链接后会以ajax的方式将数据绑定到下边的repeater。

Ajax中怎么实现分页功能

主要功能是在处理Ajax请求的AjaxProcess.aspx页面实现的,我们来看看。

AjaxProcess.aspx  <%@ Page Language="C#" AutoEventWireup="true" CodeBehind="AjaxProcess.aspx.cs" Inherits="AjaxDemo.AjaxPager.MyAjaxPager.AjaxProcess" %>                                             编号                 姓名                                             <%# Eval("Id") %>             <%# Eval("Name") %>                            
      

注意,这个Ajax处理页面的aspx部分并不像往常那样是光秃秃的,只有<% %>内的信息,它的下面多了一个repeater控件,细心的朋友会发现,这个repeater控件和主页面的repeater控件一摸一样。就是利用这个repeater控件来生成返回的html内容的,具体怎么做,请看代码:

AjaxProcess.aspx.cs  using System;  using System.Collections.Generic;  using System.Web;  using System.Web.UI;  using System.Web.UI.WebControls;  using System.Text;  using System.IO;  namespace AjaxDemo.AjaxPager.MyAjaxPager  {      public class Item      {          public string Id          {              get;              set;          }           public string Name          {              get;              set;          }      }       public partial class AjaxProcess : System.Web.UI.Page      {          private int PageSize          {              get { return 10; }          }           private List GenerateData()          {              List lstItems = new List();              for (int i = 1; i <= 1000000; i++)              {                  Item it = new Item();                   it.Id = i.ToString();                  it.Name = "zs" + i;                   lstItems.Add(it);              }               return lstItems;          }           private List GetData(int index)          {              List lstItem = GenerateData();              List bdItem = new List();               int begIndex = (index - 1) * PageSize;              int endIndex = index * PageSize;               for (int i = begIndex; i < endIndex; i++)              {                  bdItem.Add(lstItem[i]);              }               return bdItem;          }           private string GetHtml(Control control)          {              StringBuilder sb = new StringBuilder();              StringWriter writer = new StringWriter(sb);              HtmlTextWriter writer2 = new HtmlTextWriter(writer);              control.RenderControl(writer2);              return sb.ToString();          }           protected void Page_Load(object sender, EventArgs e)          {              int index = 0;              if (int.TryParse(Request.QueryString["index"], out index))              {                  //获取到index再进行操作                  this.rptGrid.DataSource = this.GetData(index);                  this.rptGrid.DataBind();                   Response.Clear();                  string html = this.GetHtml(rptGrid);                  Response.Write(html);                  Response.End();              }          }      }  }

代码相当简单,GenerateData()方法用来生成一个DataSource,GetData(int index)方法用来读取分页信息。在Page_Load事件中,会首先获取请求字符串中的index(页码),然后利用index取得当前页的信息并将它绑定到repeater控件上,然后利用GetHtml()方法来获取绑定数据后的repeater控件的html内容,将它返回。

Ok,在主页面的js中。

var gridData = xmlHttp.responseText;  var grid = document.getElementById("grid");  grid.innerHTML = gridData;

我们获取返回的这段html,并将它的内容输出到主页面的制定div中,到此就成功完成了一次分页请求。

看完上述内容,你们掌握Ajax中怎么实现分页功能的方法了吗?如果还想学到更多技能或想了解更多相关内容,欢迎关注创新互联行业资讯频道,感谢各位的阅读!


当前标题:Ajax中怎么实现分页功能
转载源于:http://hbruida.cn/article/jcehij.html

其他资讯