【问题标题】:simple pagination jquery always have 10 rows简单的分页jquery总是有10行
【发布时间】:2015-11-04 15:32:13
【问题描述】:
var items;
var perPage = 10;

// now setup pagination
var $pagination = $("#searchresult");
$pagination.pagination({
    itemsOnPage: perPage,
    cssStyle: "light-theme",
    onPageClick: function(pageNumber) { // this is where the magic happens
        // someone changed page, lets hide/show trs appropriately
        var showFrom = perPage * (pageNumber - 1);
        var showTo = showFrom + perPage;

        items.hide() // first hide everything, then show for the new page
            .slice(showFrom, showTo).show();

    }
});
function updateItems() {
    items = $(".paginate");

    // we'll update the number of items that the pagination element expects
    // using a method from the simplePagination documentation: updateItems
    $pagination.pagination("updateItems", items.length);
    // next we'll re-select the page so the onPageClick function we already
    // programmed will handle hiding and showing the correct content for us

    // note that the page we were on before may no longer exist (i.e. if
    // elements were removed and that page is no longer required), so we
    // will make sure to select an existing page
    var page = Math.min(
        $pagination.pagination("getCurrentPage"),
        $pagination.pagination("getPagesCount")
    );

    $pagination.pagination("selectPage", page);

    var tablerow = $("#searchresult").find("tr:gt(0)").length;
    if (tablerow < 10) {
        for (var i = tablerow; i < 10; i++) {
            var tr = $('<tr/>');
            tr.append("<td id=''></td>");
            tr.append("<td id=''></td>");
            tr.append("<td id=''></td>");
            tr.append("<td id=''></td>");
            tr.append("<td id=''></td>");
            tr.append("<td id=''></td>");

            $("#searchresult").append(tr);
        }
    }

}

success ajax response

success: function(data) {
    var tr;
    $("#searchresult").find("tr:gt(0)").remove();
    for (var i = 0; i < data.length; i++) {
        tr = $('<tr class="paginate"/>');
        tr.append("<td id=''>" + data[i].sid + "</td>");
        tr.append("<td ><span id='" + data[i].id1 + "'>" + data[i].name1 + "</span></td>");
        tr.append("<td ><span id='" + data[i].id2 + "'>" + data[i].name2 + "</span></td>");
        tr.append("<td ><span id='" + data[i].id3 + "'>" + data[i].name3 + "</span></td>");
        tr.append("<td ><span id='" + data[i].id4 + "'>" + data[i].name4 + "</span></td>");
        tr.append("<td id=''>" + "<a class=\"searchresult\"  href='#' >View Details</a>" + "</td>");
        $("#searchresult").append(tr);
    }
    updateItems();
},

我正在这样做pagination。我想以某种方式使表格无论如何都有 10 行。例如,项目计数是 26 第 1 页和第 2 页都可以,因为它们都有 10 个项目,但第 3 页只有 6 个项目。我想将 4 个空白项目附加到第 3 页以使其成为 10 个项目。

我尝试的是根据表行数追加行。但我无法获得页面的当前行数,我总是得到的项目长度是总项目数,即 26。

任何想法都值得赞赏

【问题讨论】:

  • 把data.length改成10..
  • @GuruprasadRao 如果我得到超过 10 个它不会将它附加到表上?我需要附加所有数据所以我需要 data.length..
  • 您只希望不惜一切代价附加 10 个项目,对吗?
  • 不,不是 10 件,我的意思是每页 10 件,如果您不理解我的陈述,请见谅。我放了一个场景以便于理解@GuruprasadRao
  • 第一个版本有点太基础了,修改后的版本可以容纳26项问题。

标签: jquery pagination


【解决方案1】:

在您的成功函数中,将空结果作为空白播种。为确保添加偶数组 10,将长度修改为 10 并添加直到为 0(或可被 10 整除)

success: function(data) {

    //insert blanks to fill in blank spaces up to an even multiple of 10
    while(data.length % 10 != 0) data.push({ 
        sid: "", id1: "", name1: "", id2: "", name2: "", 
        id3: "", name3: "", id4: "", name4: ""
    });

    var tr;
    $("#searchresult").find("tr:gt(0)").remove();
    for (var i = 0; i < data.length; i++) {
        tr = $('<tr class="paginate"/>');
        tr.append("<td id=''>" + data[i].sid + "</td>");
        tr.append("<td ><span id='" + data[i].id1 + "'>" + data[i].name1 + "</span></td>");
        tr.append("<td ><span id='" + data[i].id2 + "'>" + data[i].name2 + "</span></td>");
        tr.append("<td ><span id='" + data[i].id3 + "'>" + data[i].name3 + "</span></td>");
        tr.append("<td ><span id='" + data[i].id4 + "'>" + data[i].name4 + "</span></td>");
        tr.append("<td id=''>" + "<a class=\"searchresult\"  href='#' >View Details</a>" + "</td>");
        $("#searchresult").append(tr);
    }
    updateItems();
},

【讨论】:

  • 先生,如果您不理解我的问题,我很抱歉。我的问题是例如我有 26 个项目。它将附加到表中。然后分页。每页10个项目。现在问题出在剩下的 6 个项目上。当它附加到表中时,它只有 6 行,我想向其中添加 4 行,以便总共 10 行。
  • @Pekka - 我做到了,但后来我在第一篇文章的 while 循环中微不足道地错过了它。请查看更新的版本。
  • 哇,我在分页上添加了我的代码。完美运行
猜你喜欢
  • 2012-04-19
  • 1970-01-01
  • 1970-01-01
  • 2014-08-31
  • 1970-01-01
  • 1970-01-01
  • 2019-03-14
  • 2012-02-08
  • 1970-01-01
相关资源
最近更新 更多