我正在开发 asp.net mvc3 应用程序,并且有许多来自数据库的记录。我想先只显示 10 条记录,然后用户可以单击按钮查看接下来的 10 条记录,依此类推...就像 Facebook 墙上发布更多记录一样。
如何使用 jQuery 和 ajax 在我的应用程序中实现这个东西?
如何使用分页控制视图中数据的显示?
我使用它来获取 10 条记录,但我想使用更多记录按钮显示所有记录
var Entity = (from a
in context.Data
where <Condition>
select a).Take(10);
以下文章应该会给您一个想法:
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
另一方面,你可以这样实现:
获取名为 TugberkUg.MVC 的 nuget 包
然后,您的控制器应如下所示:
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 PagulatedList Pager - 在某个点之后明智地添加“...”
这个
TugberkUg.MVC.Helpers.PaginatedList
类将为寻呼机提供所有必需的字段。
我不知道有任何 .net 库可以为您提供开箱即用的分页功能,因此我将推出一个 DIY 解决方案供您考虑。
我如何使用 jquery 和 ajax 在我的应用程序中实现这个东西?
为 ajax 请求指定一个特定的控制器可能是明智的。只需有一个单独的区域(Ajax),并将您的ajax请求发送到您设置的URL即可。
如何使用分页控制视图中数据的显示?
设置一个接受“页面”参数的控制器。
public ActionResult GetData(int? page){ // 页面可以为空以允许默认页面
// Do your query here to get the specific page.
}
我不确定您是否需要除此之外的更多信息。如果我想做你正在做的事情,这就是我会做的。希望有帮助。
如果您使用 Webgrid 来显示数据,那么 rowsperpage 就可以了。
var grid = new WebGrid(source: Model, selectionFieldName: "SelectedRow", rowsPerPage: 10, canPage: true, canSort: true);
我建议使用 telerik mvc 控件。它们确实易于使用、功能强大且免费。
www.telerik.com