Asp.net 回发和视图状态(datagrid)之间的关系

Asp.net 回发和视图状态(datagrid)之间的关系,asp.net,gridview,postback,viewstate,Asp.net,Gridview,Postback,Viewstate,在本文“使用EnableViewState属性提高性能”中,我看不出他们在哪里将EnableViewState设置为false。他们就是这样 If Not Me.IsPostBack() Then ... DataGrid1.DataBind() 回发是否与ViewState相同 为什么不在datagrid控件上启用ViewState=false?这篇文章明确指出,第一个示例(您退出的部分)通常是在启用“ViewState”的情况下完成的。因为只有第一个get请求需要将网格绑定到数据源(如果不

在本文“使用EnableViewState属性提高性能”中,我看不出他们在哪里将EnableViewState设置为false。他们就是这样

If Not Me.IsPostBack() Then
...
DataGrid1.DataBind()
回发是否与ViewState相同


为什么不在datagrid控件上启用ViewState=false?

这篇文章明确指出,第一个示例(您退出的部分)通常是在启用“ViewState”的情况下完成的。因为只有第一个get请求需要将网格绑定到数据源(
如果不是Me.IsPostBack()
),因为连续的回发将从保存的ViewState还原网格数据

Page_Load方法的第二个示例假定.aspx文件中已禁用ViewState,并在每次加载页面时将网格绑定到数据源


调用
Me.IsPostBack
仅检查表单是否通过http post访问,而ViewState是一个对象,它保存与ASP.NET服务器控件的可视化表示相关的所有信息。所以,不,他们不一样

网格控件充当许多控件的容器。每个控件在ViewState中存储大量信息

默认情况下,ViewState存储在隐藏控件中。这意味着它在每个页面请求时都被发送到客户端。为了避免这种开销,可以将EnableViewState设置为false

<asp:GridView ID="GridView1" runat="server" EnableViewState="false">

SessionPageStatePersister利用与关联的服务器会话 用于存储数据的浏览器会话。使用会话而不是 隐藏字段可避免增加发送到和的页面大小 从浏览器。在许多情况下,页面状态是一个重要的参数 整体标记的一部分。但是,在会话中存储此数据 消耗宝贵的服务器资源


假设这是在
.aspx
文件中设置的?