控件视图状态也是一个数据库,超小型键值对数据库。
跟数据库直接打交道的gridview控件就没必要开视图状态,因为修改直接在数据库执行,然后再体现于gridview控件。
也是跟数据库直接打交道的数据源控件sqldatasource也没必要开视图状态,道理同上。

客户端发送请求->服务器判断是第一次请求或回发->如果回发,取出存储在视图状态的值->程序运行期间,用户改变控件值,保存在视图状态。

把listbox1控件的值选中放到listbox2控件,再消除listbox1曾选中的值,这需要视图状态。

 

网页第一次加载,listbox1初始化好了值。用户选择一值,按添加按钮,网页回发,listbox1的值从视图状态减少,listbox2的值从视图状态增加。用户再次选择一值,用户第二次按添加按钮,网页再次回发,listbox1的值从视图状态减少,listbox2的值从视图状态增加。

 

取消了listbox1和listbox2控件的视图状态,网页第一次加载,listbox1初始化好了值。用户选择一值,用户按添加按钮,网页回发,listbox1的值减少,listbox2的值增加。用户再次选择一值,用户第二次按添加按钮,网页再次回发,listbox1的值没减少,listbox2的值没增加,反而是替换成刚选择的值。


合乎自然而生生不息。。。