为什么TextBox中有ViewState?

时间:2012-02-20 09:04:25

标签: asp.net

即使视图状态被禁用,TextBox也可以保留在其中输入的值,因为LoadPostBackData事件会奇怪地将数据加载到PagePostBack的TextBox中。是否有特定原因TextBox具有ViewState或ViewState刚从WebControl类继承?

3 个答案:

答案 0 :(得分:4)

ViewState包含的内容远不止于文本。

澄清一下:如果你Textbox1.Visible = false;,那么控件将不会呈现任何html输出。启用ViewState后,其完整运行时状态仍将传递给下一个回发,包括 Text 属性, Visible 属性及其许多其他属性。

换句话说,启用ViewState后,Web控件永远不会丢失任何状态,即使控件本身未在html输出中呈现。

禁用ViewState后,只要将可见设置为False,文字属性(以及所有其他属性)就会丢失其值;或者甚至为其周围/父控件设置可见设置为False。

答案 1 :(得分:3)

Some properties of a control are required to maintain their values between postbacks这样他们就可以正常工作了。禁用ViewState不会禁用此行为。

Text是TextBox的唯一属性,可以在回发之间保留数据,甚至禁用ViewState,但另一方面,ToolTip使用页面ViewState来保存数据。如果禁用ViewState,ToolTip将不会在回发之间保留数据。

答案 2 :(得分:0)

不通过ViewState维护TextBox值。它通过表单数据进行维护。