0

我最近在一个 asp.net 应用程序中通过 javascript 查看动态分页。

我遇到了简单分页 - SimplePagination

我可以轻松地将它集成到我的应用程序中,我很喜欢它。

但是现在我遇到了一个问题,我不知道如何解决。

我使用的代码是:

$(function () {

    var totalPages = @Model.Pagination.TotalPage;
    var prevText = "@Model.Pagination.PrevPageTitle";
    var nextText = "@Model.Pagination.NextPageTitle";
    var currentPage = @Model.Pagination.CurrentPage;
    var edges = 1;

    //For edge display
    var displayedPages = 3;

    $(".paging").pagination({
        displayedPages: displayedPages,
        cssStyle: "light-theme",
        edges: edges,
        pages: totalPages,
        currentPage: currentPage,
        hrefTextPrefix : "?pg=",
        prevText: prevText,
        nextText : nextText,
        selectOnClick : false
    });
});

在上面的代码中,我坚持使用 hrefTextPrefix : "?pg=",

上面的代码应该适合 3 种类型的 URL:

http://example.com/test.aspx -> 当我使用 ?pg= 时它在这里工作正常

http://example.com/test.aspx?-> 如果我使用它会失败 ?pg= ; 它应该只是 pg= 这里

http://example.com/dynamic/?q=train&r=mono -> 这里再次失败 ?pg= ; 这里应该是 &pg=

现在我的问题是 - 我如何使用这个 hrefTextPrefix 以便它始终适用于任何类型的 URL。如果我不需要硬编码“pg”并从 URL 或其他方式读取它,那就太好了。请帮忙 !!

4

1 回答 1

0

我找到了答案。实际上我总是可以使用 "?pg=" 并且默认情况下它适用于所有 URL。

我用这样的javascript处理:

   var url = window.location.search;
    url = url.replace(/&?((page)|(pg))=([^&]$|[^&]*)/i, ""); //remove page or pg
    var queryString = url.substring( url.indexOf('?') + 1 );
    queryString = queryString == "" ? queryString : queryString + "&";

     ...
     ...

   $(".paging").pagination({
        displayedPages: displayedPages,
        edges: edges,
        pages: totalPages,
        currentPage: currentPage,
        hrefTextPrefix : "?" + queryString + "pg=",
        prevText: prevText,
        nextText : nextText,
        selectOnClick : false,
        onInit: function (pageNumber) {

        }
    });
于 2014-12-10T07:58:52.893 回答