我必须使用存储过程来获取和分页数据。这个特殊的存储过程有各种各样的参数,包括分页信息。显然,分页需要在服务器端完成,用户每次选择新页面时都需要获取一页数据。
我正在尝试使用 MVCContrib 完成这项工作,但在我看来,网格及其寻呼机仅支持本地寻呼和过滤。可用页面的数量取决于集合中已经存在的项目的数量,或者在我看来是这样。
有没有办法让 MVCContrib 与服务器端分页一起工作?
我必须使用存储过程来获取和分页数据。这个特殊的存储过程有各种各样的参数,包括分页信息。显然,分页需要在服务器端完成,用户每次选择新页面时都需要获取一页数据。
我正在尝试使用 MVCContrib 完成这项工作,但在我看来,网格及其寻呼机仅支持本地寻呼和过滤。可用页面的数量取决于集合中已经存在的项目的数量,或者在我看来是这样。
有没有办法让 MVCContrib 与服务器端分页一起工作?
CustomPagination
MVCContrib 中有一个类。构造函数接受以下参数
(Enumerable<T> dataSource, int pageNumber, int pageSize, int totalItems)
然后将其传递给 Grid 和 Pager。
您需要自己实现 IPagination 接口,将页面参数添加到您的操作方法,然后将其传递给您的存储过程以获取适当的项目集合。然后根据您对存储过程如何工作的了解填充每个 IPagination 属性。
如果您想要更具体的示例,存储过程的示例(或它的缩减版本)可能会有所帮助。
“可用页面的数量取决于集合中已经存在的项目的数量,或者在我看来是这样。”
也许您正在查看使用 LINQ 风格的示例。这并不一定意味着整个集合都在内存中。此外,即使它们在内存中,我仍然会将此称为服务器端分页 - 对我来说,Web 应用程序中的客户端分页意味着 javascript。
PS:这可能会帮助您入门,尽管听起来您需要忽略它的实体框架位:
在他们使用“AsPagination()”扩展的地方,您需要调用您的存储过程并填充您自己的 IPagination 实现。