`
- 浏览:
215722 次
- 性别:
- 来自:
陕西
-
ASP.Net 中控件的EnableViewState属性
在ASP.Net中对各个WebForm控件引入以前没有的EnableViewState属性。这个属性究竟有什么用。我们知道对于 WebForm而言,其代码是在服务器端的,以处理客户端的请求。当用户通过浏览器浏览网页的时候,会对网页进行某些操作,比如打开新链接,或单击某个按钮。在ASP中,这些是通过脚本语言对其进行处理,之后再传递给服务器端。但是在ASP.NET下,由于采用了code behind技术,在coding的时候,通常是将以前客户端完成的工作放到了服务器端。
那么,服务器是怎么知道客户的操作的呢?比如我在文本框输入的内容,或者单击了登录按钮,服务器端是怎样得到这些信息的呢?因为没有这些信息,服务器端就无法响应客户的请求。原理就是ASP.NET引用了viewstate的机制。在服务器端保存了网页各个控件及页面的状态,这其中包括各个控件在页面上的布局,和他们各自的属性。这些值就保存在ViewState下。我们可以观察Aspx页面的html源代码,假设这个页面上有一个button按钮,和一个listBox控件,html文件如下:
<input type="hidden" name="__VIEWSTATE" value="dDwzODYzNDM5NTU7Oz7FvviJbq45bDa7QJaumIiOhZ8mOQ==" />
<input type="submit" name="Button1" value="Button" id="Button1" style="height:40px;width:96px;Z-INDEX: 101; LEFT: 200px; POSITION: absolute; TOP: 240px" />
<select name="ListBox1" size="4" id="ListBox1" style="width:152px;Z-INDEX: 102; LEFT: 176px; POSITION: absolute; TOP: 120px"></select>
我们它的不同之处,一是少了以前所必须响应客户端事件的脚本语言,一是多了一个名为”_VIEWSTATE”的属性。其值是一长串字符。类型为 “hidden”。这个值记录的就是各个控件和页面的状态信息。当用户对页面进行相关操作的时候,状态值发生改变,并将改变的值传递给服务器端。服务器端在比较改变后的状态值和初始值之间的区别,以响应具体的请求。
一旦页面的控件很多,这种频繁的传递控件状态值对网络的消耗是很大的,因此,ASP.Net提供了EnableViewState属性,系统默认的值为true。当设置为true时,在传递状态值时就包括该控件;如果设置为false,则传递状态值时则不包括它。既然状态值不包括该控件,则客户端对它进行的操作,服务器端是不响应的。
我们可以做个实验,在Button1_Click事件中,编写代码:
ListBox.Items.Add(”客户端点击按钮一次!”);
此时运行该应用程序,单击网页上的按钮,在ListBox中会添加内容,不断地单击,内容则不断添加。如果我们将ListBox的 EnableViewState属性改为false时,不断单击按钮,则只能添加一次。
这样有什么好处呢?如果我们在开发Web应用程序时,某些控件是不需要接受用户的操作或只需要接受一次操作的时候,我们可以将这些控件的 EnableViewState属性改为false,这样可以优化我们的程序,提高网络访问的速度。
分享到:
Global site tag (gtag.js) - Google Analytics
相关推荐
### ASP.Net中控件的EnableViewState属性优化 在ASP.NET Web Forms开发中,Viewstate是一种非常重要的技术,它能够帮助我们保存用户界面的状态信息,从而实现页面间的数据持久化和交互逻辑。然而,随着应用规模的...
在ASP.Net中对各个WebForm控件引入以前没有的EnableViewState属性。这个属性究竟有什么用。我们知道对于WebForm而言,其代码是在服务器端的,以处理客户端的请求。当用户通过浏览器浏览网页的时候,会对网页进行某些...
### ASP.NET TreeView 控件详解与实用技巧 在ASP.NET Web开发中,`TreeView`控件是一种非常实用的工具,用于展示层次结构的数据,如文件系统目录、组织结构或者产品分类等。它允许用户通过点击节点来展开或折叠子...
- **禁用视图状态**:每个 ASP.NET 控件都有 `EnableViewState` 属性,可以通过设置该属性为 `false` 来禁用该控件的视图状态。 #### 四、总结 通过上述内容我们可以了解到,ASP.NET 页面编译流程是构建高效、稳定...
- `EnableViewState`属性决定页面及控件的状态信息是否在页面回发时保留。 - `IsPostBack`属性指示页面是否由用户的交互行为(如按钮点击)引发的回发。 - `Master`属性引用母版页,用于实现页面布局的统一。 - `...
1. **HTML和ASP.NET标记**:在ASP.NET页面中创建GridView,并确保设置了`EnableViewState="true"`以保留状态。同时,可能需要为每行数据添加一个按钮或其他触发器,以便用户可以触发添加新行的JavaScript函数。 2. ...
ASP.NET ViewState 是一种机制,主要用于在Web应用的页面往返行程中保持用户界面(UI)的状态。由于Web的本质是无状态的,每次用户请求页面时,服务器都会创建一个新的页面实例,而ASP.NET页面也不例外。这就意味着...
### ASP.NET 2.0 的数据源、数据绑定控件概述与区别 #### 数据源控件(DataSource Controls) 在 ASP.NET 2.0 中,数据源控件是用于连接数据库和其他数据存储的关键组件,它们提供了从数据源读取数据的能力,并...
### ASP.NET 中导出 Excel 表的方法汇总 在 ASP.NET 应用程序中,导出数据到 Excel 是一个常见的需求。下面将详细介绍 ASP.NET 中几种常见的导出 Excel 的方法及其实现原理。 #### 方法一:使用 DataSet 直接生成 ...
同时,我们需要确保GridView的EnableViewState属性设置为true,以便在Ajax请求之间保持状态。 接下来,我们需要配置GridView的数据源。这通常通过DataSourceID属性完成,或者在代码后面动态绑定数据。对于编辑和...
4. **绑定表达式**:在ASP.NET 2.0中,我们可以使用`<%# %>`绑定表达式来将控件属性与数据源字段关联。例如,`<asp:Label Text='("ColumnName") %>'>`会将"ColumnName"字段的值显示在Label控件上。 5. **数据绑定...
ASP.NET 是一种强大的 Web 应用程序开发框架,它提供了多种方式来保存和管理应用程序中的信息。在 ASP.NET 中,有几种主要的对象用于保存信息,包括 Application、Session、Cookie、ViewState 和 Cache。这些对象各...
ASP.NET提供了多种数据绑定机制,如`DataSource`属性、`DataBind()`方法等。 5. **事件处理**:每个Tab页可能都有自己的事件,如点击事件。通过为`TabControl`添加事件处理器,可以实现Tab切换时触发特定的逻辑。 ...
6. **利用控件的EnableViewState属性**:对于不需要在回送中保持状态的控件,可以禁用其EnableViewState属性,降低页面负载。 7. **优化数据库访问**:使用ADO.NET时,注意关闭数据库连接,避免长时间打开连接造成...
asp.net 大马汉化版 <%@ Page Language="C#" Debug="true" trace="false" validateRequest="false" EnableViewStateMac="false" EnableViewState="true"%> <%@ import Namespace="System.Net.Sockets" %> ...
### ASP.NET性能优化详解 在IT领域,尤其是Web开发中,ASP.NET作为微软推出的一款用于构建动态网页的应用框架,其性能优化是确保网站响应速度、提高用户体验的关键环节。本文将深入探讨ASP.NET性能优化的几个核心...
ASP.NET是微软公司开发的一种用于构建Web应用程序的框架,它基于.NET Framework,为开发者提供了丰富的功能和工具,简化了Web应用的开发过程。本篇主要探讨一些ASP.NET的小技巧,帮助开发者更高效地进行开发。 1. *...
在ASP.NET中,导出Excel是一项常见的需求,通常用于将网页上的数据以表格的形式下载为Excel文件供用户进一步处理或存储。本文将详细介绍两种在ASP.NET中实现导出Excel的方法。 **方法一:导出整个HTML到Excel** ...