界面上放置了三个服务器控件。一个Button,一个CheckBox,一个ListBox。
其中CheckBox和ListBox的EnableViewState属性设置为false。点击Button按钮,代码如下:protected void Button1_Click(object sender, EventArgs e)
{
     CheckBox1.Checked = !CheckBox1.Checked; //每次点击checkbox都取反
      ListBox1.Items.Add("123"); //ListBox增加内容
}
每次执行结果CheckBox1可以不停的取反,ListBox1只增加一个内容就不再增加。请问为什么两个控件的EnableViewState属性都设置为false,但一个(CheckBox)可以不停响应,而另一个(ListBox)只响应一次?
谢谢!

解决方案 »

  1.   

    除了使用ViewState记录表单数据外,还使用了NameValueCollection提交表单数据,
    在EnableViewState属性设置为false后
    CheckBox与html表单一样,每次都能提交到服务器端,而ListBox只能提交选中的,不能提交全部选项。因此出现你说的情况
      

  2.   

    页面信息最终会传送到服务器端处理,而什么样的信息需要处理呢?
    拿你的例子来说吧
    第一次点击的时候,服务器会收集页面信,这时listbox会加一个’123‘
    但以后点击的时候不会再加个’123‘,因为他的EnableViewState属性设置为false,服务器再也不会收集关于他的信息了
      

  3.   

    ListBoxde EnableViewState被设置为false了,之前的值当然不会传到后台了,在后台看来是始终和第一次初始化一样,item.count=0。