HTML用ajax分页

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了HTML用ajax分页相关的知识,希望对你有一定的参考价值。

 首先有几点说明:1. 文章是.net 用Ajax进行分页。 

         2. 新手上路,仅供参考,亲测有效 

         3. 代码有点繁琐,重复,刚写出来就发出来了

这是主页面代码,创建的是一个aspx后缀文件,名字是   Default.aspx

 

  <%@ Page Language="C#" AutoEventWireup="true" CodeFile="Default.aspx.cs" Inherits="新文件夹1_Default" %>

<!DOCTYPE html>

<html xmlns="http://www.w3.org/1999/xhtml">
<head runat="server">
<meta http-equiv="Content-Type" content="text/html; charset=utf-8"/>
    <title></title>
    <script src="../Admin/js/ajaxxmlhttp.js"></script>//如果直接复制,这里的路径可能不一样,需要重新定义
    <script src="../Admin/js/jquery-1.10.2.min.js"></script>


    <script>
        window.onload = function () {
            var pageindex = 1;
            var pagesize = 10;

            createXML();
            xmlhttp.open("get", "Handler.ashx?pageindex="+pageindex+"&pagesize="+pagesize);
            xmlhttp.onreadystatechange = function () {
                if (xmlhttp.status == 200 && xmlhttp.readyState == 4) {
                    var tab = xmlhttp.responseText;//tab的值是指表和表的数据总数
                    var table = tab.substring(0, tab.length - 8);//-8是为了防止数据量太大
                    var datacount = tab.substring(tab.length - 8).trim();//数据总数为了判断分页数

                    if (datacount % pagesize == 0)//求出分页数
                        pagecount = datacount / pagesize;
                    else
                        pagecount = Math.floor(datacount / pagesize) + 1;

                    document.getElementById("d1").innerHTML = table;
                    document.getElementById("Hidden1").value = pagecount;// 将分页数给Hidden1
                    
                    $("table tr:odd").css("background", "#fff");
                }
            }
            xmlhttp.send();

            //首页
            document.getElementById("Button1").onclick = function () {
                pageindex = 1;
                
                xmlhttp.open("get", "Handler.ashx?pageindex=" + pageindex + "&pagesize=" + pagesize);
                xmlhttp.onreadystatechange = function () {
                    if (xmlhttp.status == 200 && xmlhttp.readyState == 4) {
                        var tab = xmlhttp.responseText;
                        var table = tab.substring(0, tab.length - 8);
                        
                        document.getElementById("d1").innerHTML = table;
                        $("table tr:odd").css("background", "#fff");
                    }
                }
                xmlhttp.send();
            }

            //上一页
            document.getElementById("Button2").onclick = function () {

                pageindex -= 1;
                
                if (pageindex < 1)
                {
                    pageindex = 1;
                }
                xmlhttp.open("get", "Handler.ashx?pageindex=" + pageindex + "&pagesize=" + pagesize);
                xmlhttp.onreadystatechange = function () {
                    if (xmlhttp.status == 200 && xmlhttp.readyState == 4) {
                        var tab = xmlhttp.responseText;
                        var table = tab.substring(0, tab.length - 8);
                        
                        document.getElementById("d1").innerHTML = table;
                        $("table tr:odd").css("background", "#fff");
                    }
                }
                xmlhttp.send();
            }

            //下一页
            document.getElementById("Button3").onclick = function () {
                pageindex += 1;
                pageindex1 = document.getElementById("Hidden1").value;//从Hidden1中取出分页数
                if (pageindex >= pageindex1)//如果当前页码大于分页数 则等于分页数
                    pageindex = pageindex1;
                xmlhttp.open("get", "Handler.ashx?pageindex="+pageindex+"&pagesize="+pagesize);
                xmlhttp.onreadystatechange = function () {
                    if (xmlhttp.status == 200 && xmlhttp.readyState == 4) {
                        var tab = xmlhttp.responseText;
                        var table = tab.substring(0, tab.length - 8);
                        
                        document.getElementById("d1").innerHTML = table;
                        $("table tr:odd").css("background", "#fff");
                    }
                }
                xmlhttp.send();
            }

            //尾页
            document.getElementById("Button4").onclick = function () {
                pageindex = document.getElementById("Hidden1").value;//当前页等于分页数
                
                xmlhttp.open("get", "Handler.ashx?pagesize="  + pagesize+"&pageindex="+pageindex);
                xmlhttp.onreadystatechange = function () {
                    if (xmlhttp.status == 200 && xmlhttp.readyState == 4) {
                        
                        var tab = xmlhttp.responseText;
                        var table = tab.substring(0, tab.length - 8);
                        
                        
                        document.getElementById("d1").innerHTML = table;
                        
                        $("table tr:odd").css("background", "#fff");
                    }
                }
                xmlhttp.send();
            }
        }
    </script>
</head>
<body>
    <form id="form1" runat="server">
    <div id="d1">
        
    </div>
        <div>
            <input id="Button1" type="button" value="首 页" /><input id="Button2" type="button" value="上一页" /><input id="Button3" type="button" value="下一页" /><input id="Button4" type="button" value="尾 页" /><input id="Hidden1" type="hidden" />
        </div>
    </form>
</body>
</html>

 

 

这里是一般处理程序页面,可以复制粘贴,名字是  Handler.ashx

 

<%@ WebHandler Language="C#" class="Handler" %>

using System;
using System.Web;
using System.Linq;

public class Handler : IHttpHandler {
    adminsDataContext dc = new adminsDataContext();//用的是Linq,也可以换成sql
    public void ProcessRequest (HttpContext context) {
        string index = context.Request["pageindex"];
        string size = context.Request["pagesize"];
        string type = context.Request["type"];
        
        string table = "<table rules=‘cols‘ id=‘GridView1‘ style=‘color:Black;background-color:White;border-color:#DEDFDE;border-width:1px;border-style:None;border-collapse:collapse;‘ cellspacing=‘0‘ cellpadding=‘4‘><tbody><tr style=‘color:White;background-color:#6B696B;font-weight:bold;‘><th scope=‘col‘>zcid</th><th scope=‘col‘>zcname</th></tr>";
        
        var result = from x in dc.zhuclass//linq查询数据
                     select x;
        
        result.Skip(10);//跳过10数据返回其余数据
        result.Take(10);//返回10条数据
        
        int pageindex = int.Parse(index);
        int pagesize = int.Parse(size);
      
        
        var a = result.Skip((pageindex-1) * pagesize).Take(pagesize);

        
        foreach (var z in a)
        {

            table += "<tr style=‘background-color:#F7F7DE;‘><td>" + z.zcid + "</td><td>" + z.zcname + "</td></tr>";
        }

        table += "</tbody></table>";
        context.Response.Write(table +"         "+result.Count());//这里加空格是为了防止数据量太大
       
    }
 
    public bool IsReusable {
        get {
            return false;
        }
    }

}

 

<script src="../Admin/js/ajaxxmlhttp.js"></script>创建一个js文件

里面的内容:

var xmlhttp;
function createXML() {
    try {
        xmlhttp = new XMLHttpRequest();
    }
    catch (e) {
        try{
            xmlhttp = new ActiveXObject("msxml2.XMLHTTP");
        }
        catch(e1){
            xmlhttp = new ActiveXObject("Microsoft.XMLHTTP");
        }
    }
    return xmlhttp;
}

 


























































































































































































以上是关于HTML用ajax分页的主要内容,如果未能解决你的问题,请参考以下文章

在php里面用ajax怎么做分页

ajax分页

ajax分页

ajax分页练习

使用MVCPager做AJAX分页所需要注意的地方

ajax分页查询