EnableViewState属性的讲解:
新建一页面,在页面中放一个DropDownList(把DropDownList的EnableViewState属性改为false)和一个Button,在Button_Click函数里面添加代码如下:
protected void Button1_Click(object sender, EventArgs e)
{
DropDownList1.Items.Add("按钮添加一项");
}
{
DropDownList1.Items.Add("按钮添加一项");
}
我希望运行时点击Button会一直不断的添加,可实际情况如下:
无论点击多少次,都只有一项内容
这是因为把DropDownList的EnableViewState属性改为了false,把它改为true之后,再次运行就是我们想要的结果。。why????
是这样的,我们在浏览器页面中所填写的信息最终都会交给服务器处理,在客户端浏览器和服务器中间有一个_VIEWSTATE的一种机制,每次客户端向服务器发信息都要连同_VIEWSTATE里面保存的信息一起发给服务器,服务器接收到信息后然后处理。我们打开网页的"查看源"如下:
我们发现有个_VIEWSTATE这个东西,是隐藏的,当点击按钮之后再次查看这个,会发现valu的值变得长了,相信大家会猜到发生什么了吧,value里面保存了点击按钮之后给DropdownList添加的值,,换句话说,我们每次点击按钮时服务器都会从这个_VIEWSTATE里面接收客户端的信息,,,当把EnableViewState改为false时,每次刷新页面_VIEWSTATE没有保存客户端的信息,,恩,这样大家应该就会理解了吧,,哈哈哈,是不是很简单。。