2012-04-04 85 views
0

我目前有分頁功能,顯示總頁數,但我想知道如何讓頁面鏈接顯示類似於谷歌搜索結果?基本上一次只顯示10個鏈接,如果當前頁面大於7,則顯示的第一個鏈接將是currentPageIndex - 5.Google-esque分頁與剃刀

這是當前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助手。 – 2012-04-04 21:26:14

回答

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> 
    } 
}