2012-04-04 26 views
0

現在、ページ総数を表示するページ機能がありますが、私はGoogleの検索結果と同様に表示するページリンクを持つことができますか?基本的に一度に合計10個のリンクしか表示しません。現在のページが7より大きい場合、表示される最初のリンクはcurrentPageIndex - 5になります。Google-esque Pagination with Razor

これは現在のRazor/htmlです

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

[PagedList](https://github.com/TroyGoode/PagedList)を試しましたか?これは、ページインデックスリンクと総カウントをレンダリングするためのHTMLヘルパーを内蔵しています。 –

答えて

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="[email protected](i)" class="disabled"><a href="#">@(i + 1)</a></li> 
    } 
    else 
    { 
    <li id="[email protected](i)"><a href="/Search/@(i.ToString() + "?q=" + Model.SearchTerm)">@(i + 1)</a></li> 
    } 
} 
関連する問題