我的.aspx页面上有一个文本框和按钮.文本框的EnableViewState属性设置为false.但是当我在文本框中输入一些文本并单击按钮时,输入的文本仍然存在于文本框中.我希望文本框是空白的,因为EnableViewState设置为false.我错过了什么吗?
解决方法
请检查
this Code Project article以更好地了解ViewState和Postback Data.
它是这样的:
Why some controls retain values even after disabling the ViewState while others do not?
The answer is Controls which implements
IPostBackEventHandler
IPostBackDataHandler like Textbox,Checkbox,etc. will retain the state even after disabling the viewstate. The reason is during the Load Postback Data stage,these controls will get state information from Posted back form.
But controls like label which do not implement
IPostBackEventHandler
IPostBackDataHandler will not get any state information from posted back data and hence depend entirely on viewstate to maintain the state.
以下是与您的问题相关的段落.
In page life cycle,two events are associated with ViewState:
-
Load View State: This stage follows the initialization stage of page lifecycle. During this stage, ViewState information saved in the previous postback is loaded into controls. As there is no need to check and load previous data,when the page is loaded for the first time this stage will not happen. On subsequent postback of the page as there may be previous data for the controls,the page will go through this stage.
-
Save View State: This stage precedes the render stage of the page. During this stage,current state (value) of controls is serialized into 64 bit encoded string and persisted in the hidden control (__ViewState) in the page.
-
Load Postback Data stage: Though this stage has nothing to do with ViewState,it causes most of the misconception among developers. This stage only happens when the page has been posted back. ASP.NET controls which implement
IPostBackEventHandler
IPostBackDataHandler will update its value (state) from the appropriate postback data. The important things to note about this stage are as follows:
- State (value) of controls are NOT retrieved from ViewState but from
posted back form.
- Page class will hand over the posted back data to only those
controls which implement
IPostBackEventHandler
IPostBackDataHandler.
- This stage follows the Load View State stage,in other words state of controls set during the Load View State stage will be overwritten in this stage.
(编辑:李大同)
【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!
|