2012-04-04 86 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> 
    } 
}