在使用动态数据时,为什么我的观点在回发之间增长?

时间:2009-06-30 21:59:13

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

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

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

我检查了表单的旧版本,它不使用动态数据,并且viewstate根本没有增长...所以我认为动态数据控件有点怪......

其他人见过这个?它有解决方法吗?

2 个答案:

答案 0 :(得分:3)

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

(1)Fritz Onion的ViewState解码器工具可能会帮助你弄清楚里面塞满了什么东西。您可以在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是   旨在帮助所有Web开发人员,   但有特定功能可以提供帮助   ASP.NET开发人员调试ViewState   的问题。分析您的网页   使用时浏览它们的实时性   Internet Explorer 6.0或更高版本。   [...]“

答案 1 :(得分:2)

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

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

这样可以正常工作,除非你在每次回发时都这样做...我猜它会把整个列表放到Viewstate中,当你这样做的时候,因为我每次回发都是这样做的...视频状态保持不变越来越大。