ASP.NET ViewState的工作原理

前端之家收集整理的这篇文章主要介绍了ASP.NET ViewState的工作原理前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
我的.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:

    1. State (value) of controls are NOT retrieved from ViewState but from
      posted back form.
    2. Page class will hand over the posted back data to only those
      controls which implement
      IPostBackEventHandler IPostBackDataHandler.
    3. 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.

猜你在找的asp.Net相关文章