`

只在必要时保存服务器控件视图状态

阅读更多
自动视图状态管理是服务器控件的功能,该功能使服务器控件可以在往返过程上重新填充它们的属性值(您不需要编写任何代码)。但是,因为服务器控件的视图状态在隐藏的窗体字段中往返于服务器,所以该功能确实会对性能产生影响。您应该知道在哪些情况下视图状态会有所帮助,在哪些情况下它影响页的性能。例如,如果您将服务器控件绑定到每个往返过程上的数据,则将用从数据绑定操作获得的新值替换保存的视图状态。在这种情况下,禁用视图状态可以节省处理时间。
  默认情况下,为所有服务器控件启用视图状态。若要禁用视图状态,请将控件的EnableViewState 属性设置为 false,如下面的 DataGrid 服务器控件示例所示。

<asp:datagrid EnableViewState="false" datasource="..." runat="server"/>

您还可以使用 @ Page 指令禁用整个页的视图状态。当您不从页回发到服务器时,这将十分有用:

<%@ Page EnableViewState="false" %>

  注意 @ Control 指令中也支持 EnableViewState 属性,该指令允许您控制是否为用户控件启用视图状态。
  若要分析页上服务器控件使用的视图状态的数量,请(通过将 trace="true" 属性包括在 @ Page 指令中)启用该页的跟踪并查看 Control Hierarchy 表的 Viewstate 列。有关跟踪和如何启用它的信息,请参见 ASP.NET 跟踪。


分享到:
评论

相关推荐

    ASP.NET服务器控件的生命周期分析.docx

    `TrackViewState()`方法跟踪控件的视图状态,确保在后续请求中恢复状态。 2. **加载视图状态**:在这个阶段,页面框架恢复控件在上一次请求中的状态,通过`ViewState`字典。如果控件不需要自定义状态管理,通常不...

    高效的服务器端视图状态持久性

    视图状态能够帮助开发者在多个请求之间保持控件的状态,使得服务器端应用程序能保持用户交互时的上下文。然而,视图状态也因其可能增加页面大小而引发性能问题,尤其是在大型或复杂的应用中。"高效的服务器端视图...

    控件生命周期

    在保存完视图状态之后,控件进入Render阶段。在这个阶段,控件将自己及其子控件转换为HTML输出,并发送到客户端浏览器进行显示。Render方法负责生成实际的HTML代码,这是控件呈现给用户看到的部分。 #### 处理阶段...

    ASP.NET服务器控件的生命周期分析

    1. 初始化阶段:服务器控件被创建时,将执行初始化工作,主要是设置控件在Web请求生命周期内所需的配置,并且跟踪视图状态。在这个阶段,页面框架会引发Init事件并调用OnInit()方法,控件开发人员可以重写OnInit()...

    验证码控件

    最后,当页面卸载时,如果有必要,可以保存当前的视图状态供下次请求使用。 在实际应用中,验证码控件还需要考虑用户体验。过于复杂的验证码可能会增加用户的输入难度,导致他们放弃操作。因此,验证码的设计应兼顾...

    asp.net控件笔记

    视图状态用于保存控件在多个回发之间需要保留的信息,而控制状态仅用于保存那些绝对必要的信息,即使禁用了视图状态也能保持。 八、控件的异步处理 ASP.NET引入了UpdatePanel控件,它允许部分页面的异步更新,减少...

    ASP.NET状态管理

    2. **控件状态(ControlState)**:用于保存控件特定的属性信息,即使在视图状态被禁用的情况下也能保持状态。 3. **隐藏域(HiddenField)**:通过HTML隐藏字段来存储特定于页面的信息。 4. **Cookie**:用于在客户端...

    树视图的基本功能介绍

    为了更好地管理数据和控件状态,还需要定义一些必要的变量,并对树视图进行初始化。例如: ```vb Private Sub Form_Load() TreeView1.LineStyle = tvwTreeLines ' 显示树状线 ' 初始化其他控件和变量... End Sub ...

    js日历控件日期多选Kalendajs

    通过监听这些事件,开发者可以编写相应的业务逻辑,比如将选中的日期保存到服务器或更新UI状态。 4. **自定义模板**:如果你需要更个性化的日历展示,Kalendajs允许你自定义日历的模板。你可以根据需要修改日期...

    asp.net 生命周期

    - 保存控件的视图状态,以便在下次回传时恢复。 22. **结束请求(End Request)**: - 页面生命周期结束,响应发送回客户端。 了解ASP.NET页面生命周期对于开发高效、可维护的Web应用程序至关重要,因为它可以帮助...

    学C#一定要看的 页面Page 执行过程详解--相当的详细!

    - `AddParsedSubObject` 和 `CreateControlCollection`:这部分处理页面标记,创建服务器控件树。页面模板中的属性(如 `...

    aspx网站源码实例.rar

    控制状态则只用于保存控件内部必要的信息。 关于ASP.NET的配置,通常会在Web.config文件中进行。这个文件包含了应用程序的配置信息,如数据库连接字符串、身份验证模式、错误处理等。在解压的源码中,我们可以看到...

    Asp.NET状态试图解码器

    ViewState是ASP.NET框架中的一个重要特性,它允许服务器端控件在用户与网页交互时保持其状态。当一个Web页面在客户端和服务器之间往返时,ViewState数据被编码并嵌入到HTML页面中,然后在页面回发时被解码,以便...

    ASP.NET的WEB生命周期,

    视图状态是保存在客户端的一个隐藏字段中,包含了页面上所有控件的状态信息。如果存在视图状态,那么系统就会恢复控件的状态,这样就可以保持用户交互的一致性。 ##### 3. 加载控件状态(Load Control State) ...

    viewStateDecoder2.0

    ViewStateDecoder2.0就是为了解码这个隐藏的视图状态数据而诞生的。通过这个工具,开发者可以便捷地查看每个控件在ViewState中的具体信息,以便更好地理解页面在不同生命周期阶段的状态变化。 【知识点详解】 1. ...

    asp.net页面编译流程

    - **_VIEWSTATE 字符串**:当页面回传到服务器端时,ASP.NET 框架会解析表单隐藏字段中的 `_VIEWSTATE` 字符串,重建所有保存在视图状态中的属性值。 - **默认启用**:默认情况下,ASP.NET 中的每个控件都启用了视图...

    ASP.NET 3.5 ListView控件例子

    为优化性能,可以使用ViewState管理策略,只在必要时保存状态,或利用服务器控件的DataKeyNames属性来减少数据绑定的开销。 下面是一个简单的ListView控件使用示例: ```xml ...

    ajaxpro技术的treeview树形

    你需要确保只在必要时向TreeView添加数据。 2. **客户端状态管理**:如果使用了客户端的状态保存(例如,使用JavaScript变量保存已加载的节点),在页面刷新时,这些状态可能没有被正确清除,导致重复加载。 3. **...

    往动态Table里添加动态控件

    1. **创建新行**: 使用C#或VB.NET在服务器端生成新的`TableRow`对象,并添加到`Table`控件中。 2. **添加控件**: 在新创建的行中添加`TableCell`,并在单元格内添加所需的控件,如`TextBox`、`DropDownList`等。 3. ...

Global site tag (gtag.js) - Google Analytics