1

我必须使用存储过程来获取和分页数据。这个特殊的存储过程有各种各样的参数,包括分页信息。显然,分页需要在服务器端完成,用户每次选择新页面时都需要获取一页数据。

我正在尝试使用 MVCContrib 完成这项工作,但在我看来,网格及其寻呼机仅支持本地寻呼和过滤。可用页面的数量取决于集合中已经存在的项目的数量,或者在我看来是这样。

有没有办法让 MVCContrib 与服务器端分页一起工作?

4

2 回答 2

3

CustomPaginationMVCContrib 中有一个类。构造函数接受以下参数

(Enumerable<T> dataSource, int pageNumber, int pageSize, int totalItems)

然后将其传递给 Grid 和 Pager。

于 2011-07-26T23:30:21.217 回答
1

您需要自己实现 IPagination 接口,将页面参数添加到您的操作方法,然后将其传递给您的存储过程以获取适当的项目集合。然后根据您对存储过程如何工作的了解填充每个 IPagination 属性。

如果您想要更具体的示例,存储过程的示例(或它的缩减版本)可能会有所帮助。

“可用页面的数量取决于集合中已经存在的项目的数量,或者在我看来是这样。”

也许您正在查看使用 LINQ 风格的示例。这并不一定意味着整个集合都在内存中。此外,即使它们在内存中,我仍然会将此称为服务器端分页 - 对我来说,Web 应用程序中的客户端分页意味着 javascript。

PS:这可能会帮助您入门,尽管听起来您需要忽略它的实体框架位:

http://weblogs.asp.net/rajbk/archive/2010/05/08/asp-net-mvc-paging-sorting-filtering-using-the-mvccontrib-grid-and-pager.aspx

在他们使用“AsPagination()”扩展的地方,您需要调用您的存储过程并填充您自己的 IPagination 实现。

于 2011-07-26T23:25:48.113 回答