2012-04-02 33 views
0

嗨,我正在使用本指南here,我按照它。但我只使用搜索和分頁。搜索和分頁,但在搜索時仍然錯誤地顯示錯誤的總頁數

當我搜索的東西仍然顯示16頁,但它應該像3頁。

這裏的控制器代碼:

public ActionResult Index(int page = 1,string search = null) 
    { 
     IEnumerable<Produkter> produkt = db.Produkter.Where(p => search == null 
      || p.Kategorie.Contains(search) 
      || p.Material.Contains(search) 
      || p.Namn.Contains(search) 
      || p.Storlek.Contains(search) 
      || p.Tillbehör.Contains(search) 
      || p.Tillbehörstyp.Contains(search) 
      || p.Benämning.Contains(search) 
      || p.Färg.Contains(search)); 

     ViewBag.TotalPages = (int)Math.Ceiling((double)db.Produkter.Count()/pageSize); 
     produkt = produkt.Skip((page - 1) * pageSize).Take(pageSize).ToList(); 

     ViewBag.CurrentPage = page; 
     ViewBag.PageSize = pageSize; 

     ViewBag.Search = search; 
     return View(produkt); 

這裏是視圖:

@model IList<Mvctest.Models.Produkter> 
@helper biuldLinks(int start, int end, string innerContent) 
{ 
    for (int i = start; i <= end; i++) 
    { 
    <a class="@(i == ViewBag.CurrentPage ? "current" : "")" href="@Url.Action("Index", "Produkter", new { Search = ViewBag.Search , page = i})">@(innerContent ?? i.ToString())</a> 
    } 
} 
@helper pageLinks() 
{ 
    exakly the same code on the giude 
} 

<div class="product-search"> 
<form action="@Url.Action("Index", "Produkter")" method="get"> 
Search <input id="search" name="search" type="text" value="@ViewBag.Search" /> 
<input type="submit" value="Search" /> 
</form> 

Page: 
@pageLinks() 

尋呼工作和搜索工作。問題是當我搜索分頁時仍然會顯示所有頁面。在列出所有產品時,總共只有16頁,但在搜索時應該只有3頁。

回答

0

當你做你算不算過濾列表

ViewBag.TotalPages = (int)Math.Ceiling((double)db.Produkter.Count()/pageSize); 

嘗試

ViewBag.TotalPages = (int)Math.Ceiling((double)produkt.Count/pageSize); 
+0

THX更換。嗨,我還有一個問題。 || p.Benämning.Contains(搜索) || p.Färg.Contains(搜索)|| 。p.price.ToString()包含(搜索));但數據庫中的價格是貨幣價值。但我把它轉換。它說ViewBag.TotalPages =(int)Math.Ceiling((double)produkt.Count()是不是一個類型。:( – newb 2012-04-02 13:19:48

+0

應該工作。我現在沒有VS2010,但也許我的錯誤是你必須刪除'()'唯一的produkt.Count – Iridio 2012-04-02 16:39:21