我有一个客户想要从Web服务返回一个ENORMOUS查询,并且不会让步。他们坚持认为查询必须能够完全返回所有内容,并且它们也不允许我们进行任何类型的服务器端分页。
我们让它工作,以便它可以很好地返回所有数据,并将它显示在ASP.NET GridView中。为了加快巨大网格的渲染速度,我们决定实现客户端分页,但我不确定如何解决这个问题。
目前,我们将整个数据存储在ViewState中,然后根据该页面进行分页和排序,以避免再次访问服务器。
但是,使用默认设置时,尝试选择除第一个页面之外的任何页面时,都会返回404错误。我猜这是因为它在尝试通过ViewState发送大量数据时超时。
有没有办法返回数据集,然后在客户端上进行所有的分页和排序,而不必进行任何类型的回发?还是有其他方法可以做到这一点,我们没有想到? (除了服务器端分页。我们很乐意这样做,因为它显然是正确的方式,但客户端不会让步......)
编辑:如果可能的话,我想坚持使用ASP.NET GridView控件。我们已经找到了几个不同的选项,比如jQuery等,但是如果我们改为不同类型的控件,我们还有很多东西需要改变。所以我想尽可能避免改变它。
答案 0 :(得分:3)
如果时间对您来说不是一个大问题,那么从数据库中获取所有记录所需的时间我相信在客户端,网格通常呈现为HTML表,而不是使用jquery插件将在客户端对表进行分页。
http://www.codeproject.com/KB/webforms/clientside_gridviewpaging.aspx
答案 1 :(得分:2)
我们遇到了Viewstate本身成为性能问题的情况,并且不得不想办法解决类似问题...
您的选择很大程度上取决于问题中未包含的一些细节。
例如?来自Web服务的数据多久会发生变化?您可以执行以下操作之一:
答案 2 :(得分:0)
我使用jquery tablesorter插件好运。它提供了一些很好的选择。