【发布时间】:2012-07-09 09:56:01
【问题描述】:
我正在尝试减少来自我的 DataGrid 的 ViewState 负载,但它没有按预期工作。当我的页面最初运行时(并且我的数据网格为空),它的视图状态约为 1794 字节。当我用EnableViewState="true" 填充我的数据网格时,ViewState 的大小为 4,074,656 字节,而当我用 相同的数据 但 EnableViewState="false" 填充数据网格时,视图状态的大小为 2,477,356 字节。我知道这个数字几乎减半,但它仍然是一个很大的数字(并且与网格的大小成正比)。如果没有来自数据网格的任何东西,我预计这肯定会小于 10,000(不比原来的 1794 大多少)。为什么它仍然这么高?我还必须做些什么来减少来自我的数据网格的视图状态负载吗?顺便说一句,填充后的数据网格大约有 1600 行和 27 列。
【问题讨论】:
-
仅获取您所在的 GridView/DataGrid“页面”所需的记录。
-
我没有使用页面。客户端不希望在这里实现分页。
-
您是否对 ViewState 进行了解码,以查看其中究竟塞入了什么?这可能会帮助您准确找到如何缩小它。 Here's a base64 ViewState decoder
-
@hmqcnoesy 我知道它与数据网格有关,因为大小与数据网格的大小成正比;禁用或不禁用 EnableViewState。好主意,但我有机会一定要检查一下。谢谢!
标签: asp.net datagrid viewstate