【问题标题】:ASP .NET 2.0 Control State vs ViewStateASP .NET 2.0 控制状态与 ViewState
【发布时间】:2008-12-19 15:52:19
【问题描述】:

新的 ControlState 功能是仅适用于自定义控件还是也适用于标准服务器控件?

也就是说..您可以使用 Detailsview、Gridview 等标准控件禁用整个页面的 ViewState,它仍然可以工作吗? ControlState 是否适用于标准服务器控件?

或者为了将 ControlState 用于标准服务器控件,您必须通过创建新的自定义 GridView/DetailsView 来修改它们的行为?

【问题讨论】:

    标签: asp.net viewstate


    【解决方案1】:

    来自Microsoft Documentation

    仅对小型使用控制状态 关键数据的数量 对控制至关重要 回发。不要使用控制状态作为 查看状态的替代方法。

    从这里你可以猜到 GridView 和其他项目不会在 ControlState 中存储大量信息,所以我猜如果你想这样做,违背微软的建议,你必须扩展基础控制去做。

    【讨论】:

    • Michael,感谢您的回复,但这并不能完全回答我的问题。
    • 如果禁用视图状态,网格视图和其他项目将不起作用,因为绑定到它们的数据不是关键数据量。
    【解决方案2】:

    您可以禁用所有页面的视图状态,但您需要在每次回发时重新绑定 datagrid、dataview。

    有时它比在客户端上保存一个巨大的视图状态效果更好。

    对于标准的服务器控件:如果你在初始化之后修改了控件属性,那么所有的修改也会保存在 ViewState 中。

    这是很棒的 Scott Mitchell Post about ViewState

    【讨论】:

      猜你喜欢
      • 2011-05-02
      • 2013-07-16
      • 1970-01-01
      • 2023-04-09
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多