在asp.net编程时,经常使用 ViewState[""]等对象保存某些控件的一些状态,
然而我又发现TextBox等服务器控件都有ViewState这个属性,
请教各位高手,这个属性有何用处,如果把它设为false 会有什么后果!若为true 时又有什么方便之处
多谢!给小分

解决方案 »

  1.   

    ViewState等于 一个页面内的session
    可以使你的数据在点击以后保留在textbox等控件里
      

  2.   

    我也才学asp.net不长时间,曾经为viewstate,困惑了好长时间,我把我的一点理解告诉你,
    在传统的asp中,当一个表单(我是学数据库部分,以表单为例)被提交后,所有的表单值都被清除,假设你提交了一个有很多信息的表单并且服务器返回一个错误,你不得不返回表单更正,但此时表单都被清除了。但有了viewstate就可以维持页面状态。
    viewstate尤其是在b/s结构中相当有用,因为每次你点button或其他按钮时,页面都会刷新,而viewstate就是一个容器,可以保存你刷新以前的状态,如果你不想维持以上状态,EnableViewState="false"就可以了。
    我个人就理解到这种程度了,不知道这样说你能不能明白,我曾经因为这个问题郁闷了好长时间,所以比较知道你的感受。
      

  3.   

    是不是比如我向一个TextBox 中写入数据后,提交表单后
    如果TextBox的ViewState 为TRUE  则会保留刚输入的字符
    如果TextBox的ViewState 为False 则是默认的值对吗?
      

  4.   

    ViewState 在一个页面内是有效的,相当于一个页面内的保护变量。
      

  5.   

    你见过某些注册页面没有?有上一步,下一步操作,如果它们是在一个页面内操作的话,那么必用viewstate不可
      

  6.   

    我可以在页面回传时调用ViewState["status"] 状态,但是控件的话,如果viewState属性是true
    那么是不是调用时和回传前是同一个控件呢(属性完全相同!)请赐教
      

  7.   

    ViewState的作用是保存回发时服务器控件的值,即当你提交数据到服务器后,不用再一次的填充提交值到控件,ViewState会自动填充你刚才提交的值到控件中。