代码之家  ›  专栏  ›  技术社区  ›  Ahmet Altun

为什么有些asp.net控件在其EnableViewState属性为false时仍保持其状态?

  •  3
  • Ahmet Altun  · 技术社区  · 16 年前

    在网站上放置文本框、复选框和按钮。 假 在textbox中写入一些内容并选中复选框。 单击按钮。

    为什么在响应后文本框仍然被写入并且复选框被选中?

    2 回复  |  直到 16 年前
        1
  •  8
  •   Nick Craver    16 年前

    有些事情并不完全依赖于ViewState。在您列出的控件中,这些值在发送到服务器的POST中可用,因此这些值将从那里取出,控件将以这种方式恢复其状态。

    其他的东西,比如 <asp:Label> 例如,它们不会以任何方式发回,并且在没有ViewState的情况下会丢失数据。其他属性也是如此,比如文本框的样式等等…只是 value 将被还原,因为这是所有发送回来的,因此,所有它的编码来获取和还原。如果你说让它变红,那在回邮时就不见了。

    一般来说,控件可以恢复的内容 严格按照公布的数据

        2
  •  -2
  •   Community Mohan Dere    14 年前

    因为HTML控件是无状态控件。因此,微软提供了ViewState的一个特性,当用户将数据发送到服务器时,或者在发回数据后,该特性可以帮助保持值不变。因此,必须将属性“EnableViewState”设置为True。默认情况下,所有ASP.NET控件的EnableViewState都设置为True