2011-09-22 76 views
0

我正在開發asp.net mvc3應用程序,並且有很多來自數據庫的記錄。我想只顯示10條記錄,然後用戶可以點擊按鈕查看下面的10條記錄,等等......就像發佈更多記錄的Facebook牆一樣。如何在asp.net mvc3中進行分頁?

如何在我的應用程序中使用jQuery和ajax實現這件事?

如何使用分頁控制視圖中的顯示數據?

我使用它來獲取10條記錄,但我想用更多的錄製按鈕顯示所有記錄

var Entity = (from a 
    in context.Data 
    where <Condition> 
    select a).Take(10); 

回答

1

以下文章應該給你一個想法:

http://weblogs.asp.net/andrewrea/archive/2008/07/01/asp-net-mvc-quot-pager-quot-html-helper.aspx

http://weblogs.asp.net/gunnarpeipman/archive/2010/02/21/simple-pager-for-asp-net-mvc.aspx

另一方面,你可以這樣實現它:

獲取NuGet包稱爲TugberkUg.MVC

然後,控制器應該如下:

public ActionResult Index(int page = 0) { 

     const int pageSize = 10; 

     #region _filter the model 

     IQueryable<myModel> model = _myrepo.GetAll() 

     #endregion 

     #region _convert the model to paginatedList 

     var paginatedModel = 
      new TugberkUg.MVC.Helpers.PaginatedList<myModel>(model, page, pageSize); 

     #endregion 

     return View(paginatedModel); 
    } 

而且,在這裏你的控制器應如何樣子:

@model TugberkUg.MVC.Helpers.PaginatedList<myModel> 

@foreach(var item in Model) { 

    <p>@item.id</p> 

} 

您需要以處理尋呼機,這裏是你的一個樣本:

ASP.NET MVC PaginatedList Pager - Put wise "..." after certain point

這個TugberkUg.MVC.Helpers.PaginatedList類將爲尋呼機提供所有必要的字段。

0

我不知道任何.net庫會爲您打開包裝盒,因此我會推出DIY解決方案供您思考。

如何在我的應用程序中使用jQuery和Ajax實現這件事?

爲ajax請求設置特定的控制器可能是明智的做法。只需要一個單獨的區域(Ajax),並將您的ajax請求發送到您設置的網址。

如何使用分頁控制顯示數據在視圖中?

設置一個接受「頁面」參數的控制器。

公衆的ActionResult的GetData(INT?頁){// 頁面爲空允許默認頁面

// Do your query here to get the specific page. 

}

我不知道,如果你需要比這更多的其他信息。如果我試圖做你正在做的事情,這就是我會做的。希望有所幫助。

0

如果您使用Webgrid顯示數據,那麼rowperpage會執行。

var grid = new WebGrid(source: Model, selectionFieldName: "SelectedRow", rowsPerPage: 10, canPage: true, canSort: true); 
+0

嘿StewieFG!我沒有使用網格。 – Bhargav

0

我會建議使用telerik mvc控件。它們非常易於使用,功能強大且免費。

www.telerik.com