EnableViewstate = true / false

时间:2008-12-04 09:39:55

标签: asp.net

我们为ASP.net中的所有服务器控件提供了enableviewstate属性。 我们知道它将在回发中的视图状态中拥有成员数据和值

这是什么实际的例子?

4 个答案:

答案 0 :(得分:3)

Viewstate在ASP.NET中的目的确实是在回发中保持状态,其中state是构成Web窗体控件层次结构的控件的属性值。但有必要区分不同类型的国家。

您在设计时以声明方式分配给控件的任何内容都不需要在回发中保存在视图状态中。例如,假设Label Web控件具有以下声明性语法:

<asp:Label runat="server" Font-Name="Verdana" Text="Hello, World!"></asp:Label>

在实例化阶段构建控件层次结构时,Label的Text属性将设置为“Hello,World!”并且其Font属性的Name属性设置为Verdana。由于在实例化阶段每次访问页面时都会设置这些属性,因此无需在viewstate中保留此信息。

需要存储在viewstate中是对页面状态的任何编程更改。例如,假设除了此Label Web控件之外,该页面还包含两个Button Web控件,一个Change Message Button和一个Empty Postback按钮。 Change Message按钮有一个Click事件处理程序,它将Label的Text属性分配给“Goodbye,World!”。 Empty Postback Button只会导致回发,但不会执行任何代码。更改消息按钮中对Label的Text属性的更改需要保存在viewstate中。

标量值,字符串,整数,布尔值等简单控制属性遵循上面讨论的模式。但请注意,复杂属性(如Label的Font属性)使用不同的方法。

您可以在this useful MSDN article中找到更多详细信息和示例。

答案 1 :(得分:1)

例如,数据网格控件将所有数据绑定数据存储在其视图状态中,以便在回发后不会从其源(数据库等)重新加载数据。但是,所有数据都会在视图状态中进行回发,这可能会影响页面的大小。

答案 2 :(得分:0)

我并不完全理解这个问题,但是this article帮助我更好地理解了ViewState - 希望它对你有用......

答案 3 :(得分:0)

检查控件的任何示例。要查看效果,请将enableviewstate设置为true / false ...您将看到其效果