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的更改”?
答案 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。如果它已打开,那么它将保持你的值在回发之间。