今天试了一下不关闭ViewState和关闭ViewState的区别,结果发现对于页面的控件并没有什么区别,不知道是我测试的有问题还是其他的原因?请教各位大侠!谢谢!
PS:试了一下两种状态下的回发,没看到区别

解决方案 »

  1.   

    当页面中的数据没有与服务端有交互的时候可关闭ViewState,比如单一的数据查询。反则
      

  2.   

    关闭viewstate  dropdownlist.selectvalue 获取不到值的.信不信由你~
      

  3.   

    关闭ViewState不是不能保存了嘛????
      

  4.   

    ViewState保存服务器控件的值并发送给服务器端
    禁用后提交表单将无法得到服务器控件的值
    比如一个dropdownlist,你禁用ViewState后试试,提交表单将无法得到其选中的值
      

  5.   

    除textbox外,禁用ViewState后好像所有的服务器控件,提交表单,无论是POST或是GET都无法得到其选中的值
      

  6.   

    Request.Form[ropdownlist的name]还可以取得
      

  7.   

    这个只对 Load 事件加载之前创建的控件有效。
      

  8.   

    如果禁用ViewState,DropDownList的SelectedIndexChanged事件将不会被正常触发,并且DropDownList的Item项将会被清空
      

  9.   

    禁用吧...获取表单数据用Request.Form["a"]
      

  10.   

    ViewState虽然说是好意,可是有时数据过大产生了很多隐藏值,所以还是能禁就禁吧。
      

  11.   

    有区别的,比如GRIDVIEW,如果你关闭了以后,点击按钮回发,那Gridview就没有数据了。
      

  12.   

    if (!this.IsPostBack) 
            { 
                DropDownList1.Items.Add("添加"); 
              
            }
    如果你是这样的话DropDownList1 就是空的
    如果放到外面 DropDownList1不空 但是用户选择的结果无法传递
    如果不这么添加在设计状态给DropDownList1赋好值,就对了
    但是大多情况下都是从数据库读取数据,所以太过的失去了控件的优势了。
    我觉得viewstate最适合关闭的场景还是只是显示用的东西。
      

  13.   

    据说高手开发都禁viewstate
    不过个人觉得如果禁掉viewstate,
    那不就变成asp,而不是asp.net。
      

  14.   

    大概试了下,发关Page_Load事件里取不到控件的值
      

  15.   


    protected void Page_Load(object sender, EventArgs e)
        {
            if (!this.IsPostBack) 
            { 
                DropDownList1.Items.Add("dd1"); 
                DropDownList1.Items.Add("dd2"); 
                DropDownList1.SelectedIndex = 0; 
            }
        }    protected void Button1_Click(object sender, EventArgs e)
        {
            int i = DropDownList1.SelectedIndex; 
            i = DropDownList1.Items.Count;
        }
    1。如果enableviewstate=true,显然是正确的,当button click的时候,IsPostBack=true,不会给DropDownList1再次赋值;;Viewstate="/wEPDwUJMjU2NjMzNzY5D2QWAgIDD2QWAgIFDxBkDxYCZgIBFgIQBQNkZDEFA2RkMWcQBQNkZDIFA2RkMmdkZGTtIIu8ebWaFhzv4IWvgZWfL++vYA==" 2。如果enableviewstate=fasle,Viewstate="/wEPDwUKLTU1NjAxNjM5NWRkwyZK+jXFlf1ONOZERfpuPpvR8sg=" 显然,小了很多。但是,无论用户如何选择,DropDownList1.SelectedIndex=-1,而且DropDownList1是空的。
      

  16.   

    当页面中的数据没有与服务端有交互的时候可关闭ViewState,比如单一的数据查询
      

  17.   

    基本上可以确定当关闭ViewState时服务器在一些情况下是无法正确获取控件的值的
      

  18.   

    viewstate 看起来不叫洋气的一个名字。 说白了就是了<input type="hidden">. 关闭与不关闭有很大关系吗。
      

  19.   

    呃,区别肯定是有的。ViewState主要的作用就是保持控件状态。
    去掉ViewState以后,楼主可以测试下,如果一个dropdownlist,会有下列行为
    1.如果Page_Load这样的事件里面判断了 IsPosback为真的时候,不填充dropdownlist,那么最终会发现dropdownlist是空的2.如果Page_Load不加判断,每次都填充,dropdownlist有数据,但是selectedvalue一直都会是默认的第一个,也就是说你选择的那个根本反应不出来。
      

  20.   

    当然前提是楼主没有在aspx页面里面直接列出dropdownlist的值
      

  21.   

    区别大了...基础问题,你首先要了解viewstate是做什么用的
      

  22.   

    楼主是测试的Textbox  所以说没区别  这个是控件状态
    楼主你测试下 listbox 呢?
      

  23.   

    我感觉和一个属性有关
    IsPostBack
    我们通常都会在第一次加载页面的时候进行一些操作,没有ViewState的话,这里的操作回传后都会失效
      

  24.   

    我感觉这样的问题 看viewstate原理比较好弄清楚
      

  25.   

    lz:不关闭ViewState和关闭ViewState的区别,
    介意您去看看:怎么写用户自定义控件,也就是自己写服务器控件,看了你就会知道他们的区别。
    其实最简单说他就象一个隐藏域一样,比如说你认为为什么叫服务器控件了,为什么页面刷新后任然
    还有值了,为什么html一般的标签刷新后就没有值了!
    他们也就是这个区别