我有一个ViewState问题

时间:2013-04-17 15:49:38

标签: asp.net viewstate

EnableViewState="false"EnableViewState="true"的含义是什么?

我知道EnableViewState="false" =关闭ViewState,EnableViewState="true" =启用ViewState

EnableViewState="false"EnableViewState="true"之间有什么区别?

我试过这段代码:

<form runat="server">
<asp:TextBox ID="TextBox1" EnableViewState="true" runat="server">
</asp:TextBox><asp:Button ID="Button1" runat="server" Text="Button" />
<asp:Label ID="Label1" runat="server" Text="Label"></asp:Label>
</form>

我真的很困惑。 当我使用EnableViewState="true"时,我在textbox中输入了一些值,然后点击了我的按钮。现在值textbox中的值。我设置EnableViewState="false"时的过程相同。

那么 EnableViewState="true"EnableViewState="false"会发生什么?

4 个答案:

答案 0 :(得分:4)

文本框不使用Viewstate这里是解释所有Link Explain

的链接

答案 1 :(得分:0)

通常,您应该在asp.net页面上的所有控件上使用EnableViewState =“false”。当您想要保留控件本身的某些视觉外观时,最常需要控件的视图状态。例如。如果您更改控件的背景颜色,并且希望在回发中保持使用EnableViewState =“true”。

答案 2 :(得分:0)

并非所有控件都受视图状态的影响。如果禁用视图状态,则实现IEventHandler或IDataHandler的控件不会受到页面回发的影响。 Textbox就是这样一个控件。如果要在代码中看到效果。尝试在回发时设置运行时的标签值,如点击按钮并检查结果

答案 3 :(得分:0)

ViewState用于保存服务器端设置的控件的属性。

所以,举一个人为的例子,如果你在Page_Load中做了类似的事情:

if (!IsPostBack)
{
    TextBox1.ForeColor = ...;
}

然后,您设置的颜色将在ViewState中的回发中保留(如果已启用)。