【发布时间】:2011-04-04 08:39:18
【问题描述】:
我有一个使用网络服务的网络应用程序。主页运行搜索 - 通过将参数传递给特定的 Web 服务方法,然后我将结果绑定到 gridview。
我已经在网格上实现了排序和分页。通过将网格绑定到的数据表放入视图状态,然后根据需要读取/排序/过滤它 - 并重新绑定到网格。
随着从 Web 服务返回的数据量急剧增加,当我尝试分页/排序等时,我收到以下错误。
连接已重置
在页面加载时重置了与服务器的连接。
我搜索了一下,似乎是一个非常大的视图状态应该为此负责。 但肯定唯一的其他选择是
- 限制结果
- 在会话中粘贴数据表而不是视图状态
- 我不知道的其他事情
以前我在会话中确实有数据表,因为其中一些数据需要在页面之间持续存在 - (但是没有发布,所以视图状态不是一个选项)。随着数据量的增加和持久化它的必要性被删除,我改用了视图状态。认为这是比会话更好的选择,因为会话必须保存的数据量以及使用该应用的用户数量。
看起来可能不是。
我认为当视图状态变得非常大时,.net 会将其拆分为多个隐藏视图状态字段,但似乎我得到的只是一个庞大的视图状态,我无法在源代码中查看。
谁能告诉我如何避免我遇到的错误?如果确实和viewstate中的数据量有关?
【问题讨论】:
标签: asp.net sorting pagination viewstate