通过Web服务或WCF进行服务器端分页

时间:2012-03-29 10:14:19

标签: sql wcf web-services

我已经为应用程序中的大量数据实现了分页,允许用户输入他们想要返回的记录数的“页面大小”数。这将与最后一条记录的行号一起传递给存储过程,并通过SELECT ROW_NUMBER()..等进行检索。

我的问题是,这种方法不允许用户过滤或搜索整个数据集。当他们在客户端进行过滤时,他们只能对他们获得的100行进行过滤或排序。

有没有办法在服务器端允许这种分页?那么,也许保留数据服务器端,并在那里进行过滤或排序,并返回可以分页的数据块?原因是如果他们选择检索整个数据集,则会有相当长的等待,因为它是大量的记录。

winforms应用程序正在使用标准的soap Web服务,但如果需要,我可以实现WCF服务。

感谢您的任何建议或链接!我已经看到了一些方法,但我不确定肥皂网服务的最佳方式。

2 个答案:

答案 0 :(得分:0)

我们使用asp.net/wcf遇到了类似的问题。我们最终的最佳方法是使用客户端网格,例如jqgrid和jquery(ajax)调用返回数据的Web服务(在json中)。但是,作为asp.net Web表单开发人员,我们最初感到不舒服。

您谈到的另一种方法是将数据保存在服务器(或有时会话)上,但这实际上取决于数据大小。

此外,在一个地方,我们有不会经常更改的数据,您可以将其缓存到某个级别或将xml文件保留在服务器上等。每天之后,我们通过后端处理更新缓存

希望这有帮助。

答案 1 :(得分:0)

您可以通过将完整数据集从sql获取到服务器上的数据表(在服务中)来管理。然后通过组合页码,页面大小,排序方向和行过滤器,您可以将其设置为参数web方法,您将只返回所需的行。

如果与sql的速度连接不是问题,这将正常工作。