【问题标题】:EnableViewState property in textbox文本框中的 EnableViewState 属性
【发布时间】:2010-09-16 06:10:59
【问题描述】:

谁能告诉我,我们如何在asp.net 中使用文本框的enableviewstate 属性。 通过使其为假或真,我们如何能感觉到结果的不同。

【问题讨论】:

  • 我建议您通读weblogs.asp.net/infinitiesloop/archive/2006/08/03/… - 使用视图状态有很多细微差别,这是一篇很棒的文章
  • 这是不言自明的,不是吗?
  • 我们觉得两者的区别在于“欺骗”HTTP。 MVC FTW。 (好吧,我意识到这没有帮助,但我无法帮助自己)

标签: asp.net


【解决方案1】:

这取决于我们在谈论什么属性。例如,许多属性,如 Visible、Enabled、与外观相关的属性(如 CssClass、BackColor 等)由视图状态支持,如果禁用视图状态,则不会在回发时保留。

文本属性(文本框中的值)是不同的情况 - 此属性将由发布数据和视图状态支持。因此,即使视图状态被禁用,您也会看到该值被保留,因为它是通过 POST 数据(Request.Form 集合)读取的。但是,如果您将文本框标记为只读或将其可见性标记为假,您会注意到差异。在这两种情况下,都会从视图状态中检索文本值,禁用它会导致回发时的值丢失。

【讨论】:

    【解决方案2】:

    默认情况下,ASP.NET 将 EnableViewState 设置为 true,这就是为什么当您执行回发时,值会保留在 TextBoxes 中。

    如果您将其设置为 false,并执行回发,ka-boom!该值不再存在:)

    【讨论】:

    • 我的文本框值仍然存在 :( 即使我同时设置了页面和控件 enableviewstate="false"
    • 我只是在尝试相同的方法,但即使我设置 EnableViewState="false",即使我们进行回发,文本框的值也会保留。请解释原因。
    • @Amit,请参阅下面关于此行为的答案 (stackoverflow.com/questions/3724137/…)
    【解决方案3】:

    当您设置EnableViewState = true 时,将在回发之间保存值。当您将此属性设置为 false 时,每个新响应 TextBox 将具有您的代码提供的值或将为空。

    【讨论】:

      【解决方案4】:

      如果设置enableviewstate = true,那么回发后的值会保留在文本框中

      【讨论】:

        【解决方案5】:

        该属性用于决定回发后是否保留该值。如果将其设置为 false,则该值将不会在每次回发时都保持占有。用户输入的任何内容都将消失。如果是文本框,在大多数情况下您不必更改此属性,或者我可以说所有情况。

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 1970-01-01
          • 2013-08-31
          • 2010-11-27
          • 1970-01-01
          • 1970-01-01
          • 2013-02-07
          • 2011-01-04
          • 1970-01-01
          相关资源
          最近更新 更多