【问题标题】:Why is my viewstate growing between postbacks when using dynamic data?使用动态数据时,为什么我的视图状态在回发之间增长?
【发布时间】:2009-06-30 21:59:12
【问题描述】:

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

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

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

其他人看到了吗?有解决办法吗?

【问题讨论】:

    标签: asp.net asp.net-3.5 viewstate dynamic-data asp.net-dynamic-data


    【解决方案1】:

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

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

    ViewState Decoder screen shot http://alt.pluralsight.com/images/decoderscreenshot.gif

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

    "[...] ASP.NET ViewState Helper 是 旨在帮助所有网络开发人员, 但有特定的功能可以帮助 ASP.NET 开发人员调试 ViewState 问题。分析您的网页 实时浏览它们时使用 Internet Explorer 6.0 或更高版本。 [...]”

    【讨论】:

    【解决方案2】:

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

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

    这很好用,除非你在每次回发时都这样做......我猜当你这样做时它会将整个列表填充到 Viewstate 中,并且因为我每次回发都这样做......视图状态保持成长。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2010-12-03
      • 1970-01-01
      • 1970-01-01
      • 2011-02-26
      相关资源
      最近更新 更多