近几天看了下viewState的知识,碰到几个问题不太了解:
1\资料上说页面提交后服务器处理返回前,每个web控件的填入viewState中,以hidden字段的_ViewState传回client, 但我在页面上防了asp:textbox和asp:button后,提交返回后_ViewState字段里只有原始的默认20个字节左右的信息,没有关于tesxtbox和button的信息, 在这情况下我在codeBehind类里重载了LoadViewState()也不执行, 但页面使用trace=true是发现页面提交后执行了LoadViewState(), 然后修改codeBehind类,给ViewState添加了个字符串或者在SaveViewState()里修改了TextBox.Text时, 我的LoadViewState()就被执行了
1\资料上说页面提交后服务器处理返回前,每个web控件的填入viewState中,以hidden字段的_ViewState传回client, 但我在页面上防了asp:textbox和asp:button后,提交返回后_ViewState字段里只有原始的默认20个字节左右的信息,没有关于tesxtbox和button的信息, 在这情况下我在codeBehind类里重载了LoadViewState()也不执行, 但页面使用trace=true是发现页面提交后执行了LoadViewState(), 然后修改codeBehind类,给ViewState添加了个字符串或者在SaveViewState()里修改了TextBox.Text时, 我的LoadViewState()就被执行了
1.在文本框里填写内容
2.提交——这时_ViewState没有变化
3.返回的页面里面文本框里有你刚写的值
4.再次提交——这时_ViewState就应该有变化了
在submit的onclick时修改了lebal的value,label就有viewState了, 为什么
一般页面在第一次请求时,也就是IsPostBack==false时,是不调用LoadViewState()方法的,页当IsPastBack==true时,则先调用LoadViewState()再调用Page_Load(),最后调用SaveViewState().
textbox的话你试试填上内容后viewstate有无变化
全局配置 < 程序 < 页< 控件注意:下列服务器控件不能禁止ViewStateTextbox
Checkbox
Checkbox List
RadioButtonList
上面控件的状态通过IPostBackEventHandler 和 IPostBackDataHandler接口处理,而不是ViewState的机制,所以EnableViewState没有效果。
------------------------------------------------------------
不会这么妖怪吧?如果你没有禁用的话,这个PostBack后必定会执行的,你可以在里面设个断点看看TextBox的值