启用ViewStateMode不适用于子控件的子控件

时间:2011-12-09 23:10:26

标签: c# .net-4.0 viewstate

我正在开发.net 4.0应用程序。我正在尝试加载一堆具有“gridview”控件的自定义控件以及几个文本框和下拉列表。由于视图状态确实在降低系统速度以提高性能,因此我禁用了父控件的ViewStateMode(即用户控件),并启用了ViewStateMode以进行下拉菜单。但我遇到的问题是gridview内部的下拉菜单,即使他们的ViewStateMode已启用,也会引发错误。如果我启用gridView或Panel的ViewStateMode,它可以正常工作,但这会增加Viewstate的大小。 有人可以让我理解为什么会发生这种情况,解决方案是什么?

由于 BB

1 个答案:

答案 0 :(得分:1)

如果你有大量的观点状态。那么我会建议你两种方式对我有用

  1. 压缩视图状态 - http://www.codeproject.com/KB/viewstate/ViewStateCompression.aspx http://www.hanselman.com/blog/ZippingCompressingViewStateInASPNET.aspx

  2. 使用div,ul,li wahtever跟踪html中渲染区域的布局。现在不是放置网格和其他服务器控件,而是获取数据源(数据表或数据集),迭代项目并在代码隐藏中创建html,并使用文字在页面上写入最终的html标记。使用html控件可以摆脱视图状态问题。同样在那个html标签上你可以应用jquery来使它更好。