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 に答える