0

我正在使用 ASP.NET 动态数据编写一个非常复杂的 Web 表单。此表单上的一些控件回发,因为控件之间存在依赖关系。我注意到每次回发时视图状态都在变大,直到 5 点左右之后,渲染过程和实际加载到 Web 浏览器中的页面之间存在很长的延迟。

即使我只是单击一个单选按钮来导致回发,而不在表单中输入任何数据或任何其他更改,也会发生这种情况......

我检查了旧版本的表单,它不使用动态数据,并且视图状态根本没有增长......所以我推测动态数据控件在某种程度上应该受到指责......

还有人看到这个吗?有解决办法吗?

4

2 回答 2

3

我不知道您问题的直接答案,但也许这些工具之一可以帮助您进一步诊断:

(1) Fritz Onion 的 ViewState Decoder 工具可能能够帮助您弄清楚里面塞满了什么。您可以在Pluralsight 工具页面上找到列出的 ViewSate 解码器。直接下载链接:ViewStateDecoder22.zip

ViewState 解码器屏幕截图 http://alt.pluralsight.com/images/decoderscreenshot.gif

(2) 另一个可能值得一看的工具是ASP.NET ViewState Helper

“[...] ASP.NET ViewState Helper 旨在帮助所有 Web 开发人员,但具有帮助 ASP.NET 开发人员调试 ViewState 问题的特定功能。在您使用 Internet Explorer 6.0 或浏览网页时实时分析您的网页更高。[...]”

于 2009-06-30T23:49:09.073 回答
2

好吧,罪魁祸首是 Telerik 的 RadComboBox。更具体地说,是缺乏对使用 RadComboBox 的动态数据的支持。更具体地说:

将 RadComboBox 与 DynamicData 一起使用的解决方法是将可见设置为 false 的 DropDownList,调用该 DDL 上的 PopulateListControl,然后将项目复制到 RadComboBox。

这很好用,除非你在每次回发时都这样做......我猜当你这样做时它会将整个列表填充到 Viewstate 中,并且因为我在每次回发时都这样做...... viewstate 一直在增长。

于 2009-07-21T13:56:43.323 回答