日期:2014-05-17  浏览次数:20444 次

Web控件里的ViewState问题
web控件都有ViewState属性,我到现在还不太理解,什么时候关闭ViewState属性比较合适?还有我看很多人都重写VIEWSTATE,重写了有什么作用,希望高手们来给解答下,不要搞得专业术语太多,最好通俗点讲,我太菜了,怕看不懂!

------解决方案--------------------
ViewState是asp.net中保存当前网页的状态的,具体gg下哦
------解决方案--------------------
如果只有现实,不需要在postback的时候进行任何服务器端操作或者说是webform方式的操作,可以禁用掉
------解决方案--------------------
可以暂时持久化一些信息~
------解决方案--------------------
ViewState用来保存每个控件的信息,因为ASP.NET的最重要理念就是Postback,而网页提交以后原本的信息会全部丢失,所以需要用某种方法来保存,如Cookie,Session,DB,Application等等,而ViewState就是保存信息的一种手段,实际原理是把信息写入一个隐藏的表单元素,提交的时候就可以把这些信息post到下一个周期的页面里去。

并不是任何情况下都可以把ViewState禁用,禁用前最好先调试一遍。
------解决方案--------------------
viewstate就是页面级缓存
当你这个控件不会传的时候就可以禁掉 不过一般都不用管它吧 微软的默认都是合理的除非你有特殊需要
------解决方案--------------------
你需要去了解一下ASP.NET页面的生命周期,这样就很容易理解了。
因为http协议是无状态协议,服务器端无法知道客户端发生哪些操作,所以为了让Webform像Winform一样能够响应事件,就引入了ViewState来记录页面上每个控件的初始状态,在页面呈现之前,ASP.NET会把页面的初始状态通过ViewState记录起来,然后客户端在回发的时候通过反序列化ViewState,得到客户端的操作,以便能够响应相关的事件。
这个是ViewState最根本的用途,这样说很清楚了吧。
------解决方案--------------------
mark

------解决方案--------------------
如果你的gridview只是单纯做显示用的,那么就应该关闭ViewState,否则会造成多余的页面html脚本,这是应该避免的,你看下页面的源码就知道了;ViewState是用来记住控件状态的,如果你需要从控件中取得用户输入等情况,就不能关闭ViewState,控件状态需要在ViewState中回传服务器端
------解决方案--------------------
viewstate 页面级缓存
不用管它
------解决方案--------------------
探讨
我感觉我能明白,但是好像用的时候,概念模糊了,我太菜的缘故吗?谢谢 9楼大哥

------解决方案--------------------
当你 页面 没有 触发数据,不回发的时候 可以禁掉~~