Ajax分页功能的无框架实现方法

开始进入Ajax分页功能的无框架实现方法的正题。

创新互联建站是一家以网站建设、网页设计、品牌设计、软件运维、seo优化、小程序App开发等移动开发为一体互联网公司。已累计为成都假山制作等众行业中小客户提供优质的互联网建站和软件开发服务。

首先创建前台页面MyAjaxPager.aspx

 
 
 
 
  1. <%@ Page Language="C#" AutoEventWireup="true" CodeBehind="MyAjaxPager.aspx.cs" Inherits="AjaxDemo.AjaxPager.MyAjaxPager.MyAjaxPager" %>
  2. >
  3.  xmlns="http://www.w3.org/1999/xhtml" >
  4.  runat="server">
  5.     
  6.       type="text/css">
  7.     .a{}{ height:20px; line-height:20px; border-bottom:1px solid #d8dfea; clear:both;}
  8.     .b{}{ float:left; width:30px;}
  9.     .c{}{ float:left; width:500px;}
  10.     
  11.      type="text/javascript" src="http://www.cnblogs.com/JS/AjaxFunction.js">
  12.      type="text/javascript">
  13.         var xmlHttp;
  14.         
  15.         function getData(pIndex) {
  16.             xmlHttp = GetXmlRequest();
  17.             xmlHttp.onreadystatechange = ShowRepeaterData;
  18.             xmlHttp.open("GET", "AjaxProcess.aspx?index=" + pIndex, true);
  19.             xmlHttp.send(null);
  20.         }
  21.         function ShowRepeaterData() {
  22.             if (xmlHttp.readyState == 4 && xmlHttp.status == 200) {
  23.                 var gridData = xmlHttp.responseText;
  24.                 var grid = document.getElementById("grid");
  25.                 grid.innerHTML = gridData;
  26.             }
  27.         }
  28.     
  29.      id="form1" runat="server">
  30.     
  31.              id="page">
  32.          align="left">
  33.              href="javascript:getData(1);">1
  34.              href="javascript:getData(2);">2
  35.              href="javascript:getData(3);">3
  36.              href="javascript:getData(4);">4
  37.              href="javascript:getData(5);">5
  38.              href="javascript:getData(50);">50
  39.              href="javascript:getData(500);">500
  40.              href="javascript:getData(5000);">5000
  41.              href="javascript:getData(50000);">50000
  42.              href="javascript:getData(99999);">99999
  43.         

  44.          id="grid">
  45.              ID="rptGrid" runat="server">
  46.                 
  47.                     
  48.                         
  49.                              style="border:solid 1px red;">编号
  50.                              style="border:solid 1px red;">姓名
  51.                         
  52.                 
  53.                 
  54.                     
  55.                          style="border:solid 1px red;"><%# Eval("Id") %>
  56.                          style="border:solid 1px red;"><%# Eval("Name") %>
  57.                     
  58.                 
  59.                 
  60.                     
  61.                 
  62.             
  63.         
  •     
  •     
  •     
  • Ajax分页功能的无框架实现的画面很简单,就是一排index地址,当点击链接后会以ajax的方式将数据绑定到下边的repeater。

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

     
     
     
     
    1. AjaxProcess.aspx
    2. <%@ Page Language="C#" AutoEventWireup="true" CodeBehind="AjaxProcess.aspx.cs" Inherits="AjaxDemo.AjaxPager.MyAjaxPager.AjaxProcess" %>
    3.  ID="rptGrid" runat="server">
    4.     
    5.         
    6.             
    7.                  style="border:solid 1px red;">编号
    8.                  style="border:solid 1px red;">姓名
    9.             
    10.     
    11.     
    12.         
    13.              style="border:solid 1px red;"><%# Eval("Id") %>
    14.              style="border:solid 1px red;"><%# Eval("Name") %>
    15.         
    16.     
    17.     
    18.         
    19.     
    20.   

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

     
     
     
     
    1. AjaxProcess.aspx.cs
    2. using System;
    3. using System.Collections.Generic;
    4. using System.Web;
    5. using System.Web.UI;
    6. using System.Web.UI.WebControls;
    7. using System.Text;
    8. using System.IO;
    9. namespace AjaxDemo.AjaxPager.MyAjaxPager
    10. {
    11.     public class Item
    12.     {
    13.         public string Id
    14.         {
    15.             get;
    16.             set;
    17.         }
    18.         public string Name
    19.         {
    20.             get;
    21.             set;
    22.         }
    23.     }
    24.     public partial class AjaxProcess : System.Web.UI.Page
    25.     {
    26.         private int PageSize
    27.         {
    28.             get { return 10; }
    29.         }
    30.         private List GenerateData()
    31.         {
    32.             List lstItems = new List();
    33.             for (int i = 1; i <= 1000000; i++)
    34.             {
    35.                 Item it = new Item();
    36.                 it.Id = i.ToString();
    37.                 it.Name = "zs" + i;
    38.                 lstItems.Add(it);
    39.             }
    40.             return lstItems;
    41.         }
    42.         private List GetData(int index)
    43.         {
    44.             List lstItem = GenerateData();
    45.             List bdItem = new List();
    46.             int begIndex = (index - 1) * PageSize;
    47.             int endIndex = index * PageSize;
    48.             for (int i = begIndex; i < endIndex; i++)
    49.             {
    50.                 bdItem.Add(lstItem[i]);
    51.             }
    52.             return bdItem;
    53.         }
    54.         private string GetHtml(Control control)
    55.         {
    56.             StringBuilder sb = new StringBuilder();
    57.             StringWriter writer = new StringWriter(sb);
    58.             HtmlTextWriter writer2 = new HtmlTextWriter(writer);
    59.             control.RenderControl(writer2);
    60.             return sb.ToString();
    61.         }
    62.         protected void Page_Load(object sender, EventArgs e)
    63.         {
    64.             int index = 0;
    65.             if (int.TryParse(Request.QueryString["index"], out index))
    66.             {
    67.                 //获取到index再进行操作
    68.                 this.rptGrid.DataSource = this.GetData(index);
    69.                 this.rptGrid.DataBind();
    70.                 Response.Clear();
    71.                 string html = this.GetHtml(rptGrid);
    72.                 Response.Write(html);
    73.                 Response.End();
    74.             }
    75.         }
    76.     }
    77. }

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

    Ok,在主页面的js中。

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

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

    这是一个简单的demo,如果有需要,还可以加一些分页等待过程中的动画什么的,这里就不详述了。

    以上Ajax分页功能的内容希望可以帮助到有需要的朋友。

    分享文章:Ajax分页功能的无框架实现方法
    地址分享:http://www.shufengxianlan.com/qtweb/news1/89951.html

    网站建设、网络推广公司-创新互联,是专注品牌与效果的网站制作,网络营销seo公司;服务项目有等

    广告

    声明:本网站发布的内容(图片、视频和文字)以用户投稿、用户转载内容为主,如果涉及侵权请尽快告知,我们将会在第一时间删除。文章观点不代表本网站立场,如需处理请联系客服。电话:028-86922220;邮箱:631063699@qq.com。内容未经允许不得转载,或转载时需注明来源: 创新互联