【问题标题】:I have one issue for ViewState我有一个 ViewState 问题
【发布时间】:2013-11-05 14:30:23
【问题描述】:

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" 会发生什么?

【问题讨论】:

  • 这对我没有帮助。我只想要 EnableViewState="true" 和 EnableViewState="false" 中的过程是什么
  • 那你已经读得很快了。您所说的“过程是什么”是什么意思?你的意思是如果你禁用 ViewState 会发生什么?没什么,如果你不使用依赖于 ViewState 的控件。
  • 是的!你说的对 。请告诉我 EnableViewState="true" 和 EnableViewState="false" 时会发生什么?
  • “告诉我”?我链接到两个资源来解释 ViewState 的作用。你为什么不解释你真正的问题?你想做什么,真正发生了什么,你为什么期待其他事情发生?我只想在回发后清除一个文本框,然后search and you will find

标签: asp.net viewstate


【解决方案1】:

Texbox Dont Use Viewstate 这里是解释所有Link Explain的链接

【讨论】:

  • 好的。如果我使用另一个控件。现在 EnableViewState="true" 和 EnableViewState="false" 会发生什么?
  • 这取决于您使用的控件...大多数像 html 控件这样的元素不支持视图状态
  • ViewState 不需要保留控件值 这不是这种情况,因为这些值是通过回发的表单字段值标识的,并在 LoadPostData() 方法中为那些实现 IPostBackDataHandler.values 的控件分配看到这个链接的 msdn msdn.microsoft.com/en-us/library/ms972976.aspx 它解释了所有
  • LoadPostData() 中分配的数据何时?
  • 它是用于在使用 ipostbackDataHandler 的控件中加载数据的方法 ...i postbackDATAhANDELER 允许服务器控件确定其状态是否应因回发而改变,并引发适当的事件
【解决方案2】:

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

【讨论】:

    【解决方案3】:

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

    【讨论】:

      【解决方案4】:

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

      因此,举一个人为的例子,如果您在 Page_Load 中执行以下操作:

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

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

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 2016-08-28
        • 1970-01-01
        • 1970-01-01
        • 2011-01-17
        • 2010-12-13
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多