0

現在、総ページ数を表示するページネーション機能を持っていますが、ページ リンクを Google 検索結果のように表示するにはどうすればよいでしょうか? 基本的に一度に合計 10 個のリンクのみを表示し、現在のページが 7 個を超える場合、表示される最初のリンクは currentPageIndex - 5 になります。

これは私が持っている現在の Razor/html で、合計ページ数に等しいリンク数を表示します。

@for (int i = 0; i < Model.PageCount; i++)
{
    if (Model.CurrentPageIndex == i)
    {
    <li id="page@(i)" class="disabled"><a href="#">@(i + 1)</a></li>
    }
    else
    {
    <li id="page@(i)"><a href="/Search/@(i.ToString() + "?q=" + Model.SearchTerm)">@(i + 1)</a></li>
    }
}
4

1 に答える 1

1

これは、カミソリの問題というよりも論理的な問題のようです。

@{
    int pagesDisplayed = 10;
    int firstPage = Model.CurrentPageIndex - pagesDisplayed / 2;
    if(firstPage < 0){
        firstPage = 0;
    }
}
@for (int i=firstPage; i <= (firstPage + pagesDisplayed); i++){
    if (Model.CurrentPageIndex == i)
    {
    <li id="page@(i)" class="disabled"><a href="#">@(i + 1)</a></li>
    }
    else
    {
    <li id="page@(i)"><a href="/Search/@(i.ToString() + "?q=" + Model.SearchTerm)">@(i + 1)</a></li>
    }
}
于 2012-04-04T21:31:33.293 に答える