文章类型: JAVASCRIPT
关键词: js,javascript,分页,思路
内容摘要: 给大家介绍一下使用js实现分页的思路及其代码

js实现分页的思路代码

2015/7/29 9:13:54    来源:apple    阅读:

使用js来显示分页功能,必要条件是需要获得总记录数、每页的记录数及当前页的页号。其他的条件为非必要条件。主要代码如下:

var prevPageStatus = false;
var nextPageStatus = true;
var startPage;
var endPage;
var maxPage;
var currentPage;
var recordCount;
var pageSize = 10;
var orderCol;
var orderStyle;

function initPagerData() {
    if (recordCount > 0) {
        if ((recordCount % pageSize) == 0) {
            maxPage = recordCount / pageSize;
        } else {
            maxPage = Math.ceil(recordCount / pageSize);//取大于其值的最小整数
        }

        startPage = 1;
        currentPage = 1;
        orderCol = "CommentDate";
        orderStyle = "desc";

        if (startPage + 10 >= maxPage) {
            endPage = maxPage;
            //下一页禁用
            nextPageStatus = false;
        } else {
            endPage = 10;
        }
        prevPageStatus = false;
        document.getElementById("pagerInfo").innerHTML = "共" + recordCount + "篇文章·共" + maxPage + "页";
        createPageInfo();
        //loadCurrentPageArticles();
    } else {
        maxPage = 0;
        document.getElementById("pagerInfo").innerHTML = "共0篇文章·共0页";
    }
}

function selectOrderCol(orderName) {
    orderCol = orderName;
    fillPageInfo(1);
}
function orderStyleChange() {
    if (document.getElementById("chkTimeAsc").checked) {
        orderStyle = "asc";
    } else {
        orderStyle = "desc";
    }
    fillPageInfo(1);
}

function prevPage() {
    nextPageStatus = true;
    endPage = startPage - 1;
    if (startPage - 10 <= 1) {
        startPage = 1;
        //上一页禁用
        prevPageStatus = false;
    } else {
        startPage = startPage - 10;
    }

    fillPageInfo(startPage);
}

function nextPage() {
    prevPageStatus = true;
    startPage = endPage + 1;
    if (endPage + 10 >= maxPage) {
        endPage = maxPage;
        //下一页禁用
        nextPageStatus = false;
    } else {
        endPage = endPage + 10;
    }

    fillPageInfo(startPage);
}

function createPageInfo() {
    var pageInfo = "";
    if (prevPageStatus) {
        pageInfo = "<input type='button' id='btnPrevPage' class='A_Style' style='font-size:15px;' title='上一页' onclick='prevPage()' value='…' />";
    }

    for (var i = startPage; i <= endPage; i++) {
        if (i == currentPage) {
            pageInfo += "<span class='current'>" + i + "</span>";
        } else {
            pageInfo += "<input type='button' class='A_Style' title='查看第" + i + "页信息' onclick='fillPageInfo(" + i + ")' value='" + i + "' />";
        }
    }

    if (nextPageStatus) {
        pageInfo += "<input type='button' id='btnPrevPage' class='A_Style' style='font-size:18px;' title='下一页' onclick='nextPage()' value='…' />";
    }

    document.getElementById("pageNavi").innerHTML = pageInfo;
}

function fillPageInfo(newPageNo) {
    currentPage = newPageNo;
    createPageInfo();
    loadCurrentPageArticles();
}

function loadPager() {
    var url = "GetArticleCount.ashx?r=" + Math.random();
    // 1. 创建XMLHttpRequest组件
    var xhr = createXMLHttpRequest();
    // 2. 设置回调函数
    xhr.onreadystatechange = function () {
        if (xhr.readyState == 4 && xhr.status == 200) {
            var count = xhr.responseText;
            if (count > 0) {//IE浏览器
                recordCount = count;
            } else {
                recordCount = 0;
            }
            initPagerData();
        }
    };
    // 3. 初始化XMLHttpRequest组件
    xhr.open("GET", url, true);
    xhr.send(null);
}

function createXMLHttpRequest() {
    var xmlHttp;
    try {
        if (window.ActiveXObject) {//如果是IE浏览器
            try {
                xmlHttp = new ActiveXObject("Msxml2.XMLHTTP");
            } catch (e) {
                xmlHttp = new ActiveXObject("Microsoft.XMLHTTP");
            }
        }
        else if (window.XMLHttpRequest) {//非IE浏览器,包括360浏览器,Firefox,Opera 8.0+,Safari等
            xmlHttp = new XMLHttpRequest();
        }
    } catch (e) {

    }

    return xmlHttp;
}

function loadCurrentPageArticles() {
    var urlLocation = "ArticlePageData.ashx";
    urlLocation = encodeURI(urlLocation);
    // 1. 创建XMLHttpRequest组件
    var xhr = createXMLHttpRequest();
    // 2. 设置回调函数
    xhr.onreadystatechange = function () {
        if (xhr.readyState == 4 && xhr.status == 200) {
            document.getElementById("articlePageInfo").innerHTML = xhr.responseText;
        }
    };
    // 3. 初始化XMLHttpRequest组件
    xhr.open("POST", urlLocation, true);

    //4. 发送请求
    var searchInfo = "pageNo=" + escape(currentPage) + "&orderCol=" + escape(orderCol) + "&orderStyle=" + escape(orderStyle);
    xhr.setRequestHeader("Content-Type", "application/x-www-form-urlencoded");
    xhr.send(searchInfo);
}


↑ 上一篇文章:asp.net上传图片文件自动修改图片大小代码 关键词:asp.net,上传,图片,文件,自动修改,图片,大小,代码 发布日期:2015/7/28 17:59:37
↓ 下一篇文章:永远的蝴蝶 关键词:永远,蝴蝶,陈启佑 发布日期:2015/7/29 9:15:41
相关文章:
全面兼容ie[6-11]、火狐、Chrome、opera、maxthon3、360浏览器的js本地图片预览 关键词:全面,兼容,ie,火狐,Chrome,opera,maxthon3,360浏览器,js,Java.. 发布日期:2015-07-14 16:45
js将String解析成xml数据格式、xml数据格式转化为String 关键词:xml,string,javascript,js,转换 发布日期:2015-07-14 17:17
如何用c#和js获得当前站点的根路径 关键词:如何,用,c#,js,javascript,获得,当前站点,根路径 发布日期:2015-07-29 14:12
相关目录:.NET软件开发JAVASCRIPTANDROID
我要评论
正在加载评论信息......