我正在尝试减少来自我的DataGrid的ViewState中的负载,但它无法正常工作。当我的页面最初运行(并且我的datagrid为空)时,它的viewstate大约是1794字节。当我用EnableViewState="true"
填充我的数据网格时,ViewState出现了4,074,656字节,当我用填充数据网格但是EnableViewState="false"
时,viewstate出现了2,477,356字节。我知道这个数字几乎减少了一半,但它仍然是一个很大的数字(并且与网格的大小成比例)。没有任何来自数据网格的东西,我预计这肯定会低于10,000(不比原来的1794大很多)..为什么它仍然如此之高?还有什么我必须做的事情来减少来自我的数据网格的视图状态负载吗?顺便说一下,填充时的数据网格有大约1600行和27列。
答案 0 :(得分:0)
我意识到我从我的数据层类中检索到的DataTable(用于绑定我的DataGrid)也存储在ViewState[]
中用于排序目的(非常糟糕的做法),我刚发现它存储了所有的__VIEWSTATE
隐藏字段中的数据。
它存储在ViewState[]
中,因为我懒得存储/检索搜索选项字段并重新查询排序,而没有意识到后果。基本上,我的DataGrid有EnableViewState="true"
,我的__VIEWSTATE
的大小增加了一倍......我从这个错误中学到了很多东西,我希望其中任何一个偶然发现的东西也会学到一些东西。