Viewstate上的TextBox值?

时间:2012-03-01 11:48:58

标签: c# asp.net webforms viewstate

回发中的

textBox值不会保存在Viewstate中。

http://msdn.microsoft.com/en-us/library/ms972976.aspx

  

当ASP.NET网页在负载回发数据中回发时   阶段,Page类看到一个已发布的返回表单字段   对应于IPostBackDataHandler接口。有这样一个   控制层次结构,因此TextBox的LoadPostData()方法是   调用,传入用户输入TextBox的值   (“你好,世界!”)。 TextBox的LoadPostData()方法只是分配   这将值传递给其Text属性。确定了价值观   通过回发表单字段值,并在LoadPostData()中分配   实现IPostBackDataHandler的那些控件的方法。

现在让我们谈谈TextBox.OnTextChanged Method

它说:

  

请注意

     

TextBox控件必须在帖子之间保留一些值   服务器使此事件正常工作。确保视图状态为   启用此控件。

问题:

所以我想对于某些事件,它会写入Viewstate ......

它如何告诉ASP.NET “开始跟踪对Viewsstate的更改”

2 个答案:

答案 0 :(得分:2)

为TextBox启用ViewState时,它只会保存在那里。


ASPX页面示例

 <asp:TextBox ID="tb" runat="server" EnableViewState="true"></asp:TextBox>

C#(代码隐藏)示例

tb.EnableViewState = true;

您的引用说明了在回发时恢复表单时不需要此值的事实。

因此,您可以为TextBox关闭ViewState,它仍将保留其值。但OnChanged将无法运作。

答案 1 :(得分:0)

我相信你问题的第一句话是......没错,但是不准确。

您可以使用控件的属性(EnableViewState)甚至页面级别启用/禁用viewstate。默认情况下,TextBox上启用EnableViewState。如果它已打开,那么它将保持你的值在回发之间。