首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

ViewState不需要保留控件值,那么它的作用是什么?

在网络应用中,ViewState 是一种用于保存 Web 页面控件状态的技术。它在页面生命周期中起着重要的作用,允许开发者在客户端和服务器之间传递控件的状态信息。ViewState 的主要作用如下:

  1. 保存控件状态:ViewState 允许开发者在客户端保存 Web 页面控件的状态,例如文本框中的输入值、复选框的选中状态等。这样,在页面重新加载或提交时,可以恢复这些控件的状态。
  2. 提高性能:由于 ViewState 可以在客户端保存控件状态,因此可以减少服务器的负担,提高应用程序的性能。
  3. 保护数据安全:ViewState 使用加密技术来保护客户端存储的数据,防止用户篡改数据。
  4. 支持回发事件:ViewState 可以在客户端存储控件的事件信息,例如按钮的单击事件。这样,在服务器端处理事件时,可以获取到这些事件信息。

尽管 ViewState 有诸多优点,但在某些情况下,它可能会导致性能问题。例如,如果页面中有大量的控件,ViewState 可能会导致页面变得很大,从而影响加载速度。因此,开发者需要根据具体情况来决定是否使用 ViewState。

推荐的腾讯云相关产品:

  1. 腾讯云云巢(TKE):腾讯云云巢是一种容器解决方案,可以帮助用户快速地构建、运行和管理容器化应用。
  2. 腾讯云应用生命周期管理(ALM):腾讯云应用生命周期管理可以帮助用户实现应用的持续集成、持续交付和持续部署,从而提高应用的质量和性能。
  3. 腾讯云数据库备份与恢复(DR):腾讯云数据库备份与恢复可以帮助用户备份和恢复数据库,确保数据的安全和可用性。
  4. 腾讯云负载均衡器(LB):腾讯云负载均衡器可以帮助用户在多个服务器之间分配流量,从而提高应用程序的性能和可用性。

推荐的产品介绍链接地址:

  1. 腾讯云云巢:https://cloud.tencent.com/product/tke
  2. 腾讯云应用生命周期管理:https://cloud.tencent.com/product/alm
  3. 腾讯云数据库备份与恢复:https://cloud.tencent.com/product/db
  4. 腾讯云负载均衡器:https://cloud.tencent.com/product/clb
页面内容是否对你有帮助?
有帮助
没帮助

相关·内容

怎样把DataGrid存放在ViewState无用数据卡掉

其实在DataGrid中,有一个用来呈现数据控件:System.web.ui.webcontrol.DataGridTable,很遗憾,我在MSDN中没找到相关说明,但是我在跟踪DataGrid...时,发现第一个子控件就是上述Class(当然这是我在看到这片E文后才知道,嘿嘿)。...大家可以在SaveViewState中将生成objectType全部看看,再加上DataGrid.ViewState所有,都不会发现DataGrid在ViewState中所保存数据,那么是什么导致...ViewState这么大,是什么ViewState中存入数据源数据呢?...所以呢,如果不需要ViewState中存放这些数据源数据(比如说为了加快速度,或者自定义分页),我们只需要:DataGrid.Controls[0].EnableViewState = false,

50830

常见 Datagrid 错误

例如,Datagrid 处于“Edit”(编辑)模式时,忽略该项检查将导致已编辑被数据源中原始覆盖。然而,该规则至少有一个主要例外,请参阅持续使用大型 ViewState。...或是要创建一个复合服务器控件,其中每个子控件都需要动态创建,因为无法以声明方式创建这些子控件。如果遇到这些情况,请注意,提交页面时不要保留这些动态控件。...要使页面大小不增加,最简单方法是无论对整个页面,还是单独对某些特定控件,都禁用 ViewState。例如,如果页面不产生回发,那么对整个页面禁用 ViewState 是安全。...否则,请对两次回发之间状态信息不会发生更改各个控件禁用 ViewState,或者对不需要隐藏字段来跟踪自身状态那些控件禁用 ViewState。...也可以考虑使用折衷 DataList 控件具备编辑和排序功能,同时还具有在一行内重复显示记录功能。

2.3K20
  • ASP.Net WebForm温故知新学习笔记:二、ViewState与UpdatePanel探秘

    ViewState对应项中可以存储任何类型(参数是Object类型),实施上任何类型存储到ViewState中都会被装箱为Object类型。   ...但不幸是,这是ViewState设计机制,要想依靠来保持状态,它就会将服务器控件状态包括数据集合都存储到其中,在浏览器和服务器之间来回传递保持状态。   ...刚刚说到,因为ViewState会一定程度上影响性能,所以我们可以在不需要时候禁用 ViewState。...当然,ViewState帮我们实现了某些服务器控件状态保持,因此在非必需情况下,还是可以适度使用,特别是在开发企业内部信息系统场景。   那么,怎样来禁用ViewState呢?...④真正禁用ViewState:刚刚我们三种方法实践后,在页面还是出现_VIEWSTATE隐藏域,尽管它保留了最基本信息。那么,我们可能会问?

    1.8K30

    ASP.NET ViewState之详解

    今天我们来了解一下在ASP.NET中ViewState作用ViewState=视图状态; ViewState通用解释就是:是 ASP.NET 页中存储库,可以存储必须在回发过程中保留。...所谓回发:就是由服务器控件导致页面刷新。 ASP.NET 页框架使用视图状态在往返过程之间保存页和控件。...在呈现页 HTML 时,必须在回发过程中保留页和的当前状态将被序列化为 Base64 编码字符串。然后,它们将被放入页中一个或多个隐藏字段。 大家在开发程序时候,查看网页源代码。...是不是都发现都多了一个ID名为__VIEWSTATEhidden控件呢。这就是在回发过程中保留。 ? 为什么要微软要开发这样一个功能呢? 因为Web 应用程序是无状态。...比如:我有一个DropDownList控件,然后我点击了某个Button控件,在Button对应click事件下修改了DropDownList默认选项,这时候,ViewState中就会记录DropDownList

    1.5K30

    ASP.NET保持用户状态九种选择

    在图6中,一个ASP.NET页面设置了某个用户ID,在这以后保持在一个隐藏窗体字段中。后面的向任何页面的请求保留这个,直到页面使用Submit按钮链接到其它用户。...生命周期可能只有一个请求那么短,也可能有用户使用应用程序时间那么长(如果构造正确的话)。这类数据一般小于1KB。...ViewState是ASP.NET中一个新容器,也许你已经使用它了,但是你可能还是不了解。这是因为所有的内建Web控件都使用ViewState在页面回发(postback)间保持自己。...如果某个特定控件不需要在回发之间保持数据,请通过把EnableViewState设置为false关闭该对象ViewState。...典型Web窗体不需要直接维护ViewState。但是如果你建立自定义Web控件,就需要了解它是怎样工作,并为你控件实现,这样该控件工作方式才能与随ASP.NET发布Web控件同样地工作。

    1.9K20

    Asp.net页面生命周期

    (这里ControlState具体用法有待研究:2012/5/25补充:ControlState是一种特殊ViewState,即使页面或网站禁用了ViewState,ControlState依然起作用...同样如果在第6步中加载ViewState含有该控件ViewState那么就执行该方法; 9.获取控件回传并设置控件到相应属性上(控件LoadPostData):存在回传服务器控件均继承了...IsTrackingViewState,TrackViewState就是用来修改IsTrackingViewState返回,只有IsTrackingViewState返回true,那么控件才会在...SaveViewState中保存到ViewState中(当然我们可以重写时候让IsTrackingViewState永远返回false,那么控件数据就无法保存到ViewState了)。...如果先把ddl添加到页面控件树再添加列表项,那么列表项将会保存到ViewState当中去。

    2.4K80

    .NET工作准备--04ASP.NET

    ,而ISAPI过滤器则是指在启动ISAPIhttp服务器上运行dll,它可以用来处理特定http请求; asp.net是什么?...静态页面是指不需要服务器代码额外处理,直接可以呈现给用户页面,如html.相对需要服务器针对每一个请求做处理页面被称为动态页面,如aspx....); asp.net中有些控件本身实现类保存数据功能,而不依靠ViewState.例如TextBox,即使ViewState关闭,数据也不会丢失;ViewState可以保存任何可序列化对象,而不仅仅限于控件状态数据...服务器把ViewState对象加密并编码,然后写入ViewSate字段,这时页面ViewState字段就包含了上次提交表单内控件数据以及服务器代码写入ViewState数据; 服务器将页面发送到客户端...并且存储了所有ViewState对象内.

    2K50

    Application Session Cookie ViewState Cache Hidden 区别

    ASP.NET中,有多种保存信息对象,如:Application,Session,Cookie,ViewState、Cache等,它们有什么区别?应用环境是什么?...,那么使用Application是理想选择。...; 2、可以保存大量数据但是要慎用,因为会影响程序性能; 3、所有的Web服务器控件都是用ViewState在页面PostBack期间保存状态; 4、不需要则关闭 @page 里面设置EnableViewState...html类型服务器控件,要使用Runat=server,始终处于隐藏状态; 2、每一次提交时候它会和其他服务器控件一起提交到服务器端; 3、代码: Hidden.Value = "king";  /.../写 string id = Hidden.Value;   //读 查询字符串 1、查询字符串方式是将要传递连接在URL后面; 2、一般用于页面之间传递信息; 3、由于URL长度有一定限制

    82330

    ASP.NET 2.0数据处理之高级分页排序

    GridView控件选择操作纯粹是一个UI概念,SelectedIndex属性与表格可 GridView控件"选择"操作纯粹是一个...UI概念,SelectedIndex属性与表格可视数据行中的当前被选中索引相对应。...在某些环境下,保留对指定数据行选中更好,即使该行在表格的当前页面中并不可视。下面的例子演示了如何在排序和分页操作之后仍然保留当前选中数据行。...请注意,当我们执行分页或排序操作时候,页面不需要发回(postback)以检索新(尽管执行了客户端脚本向服务器回调操作)。...在这个模板中,你可以放置按钮控件,并把CommandName属性设置为Page,把属性设置为First、Prev、Next、Last或<number>,其中<number>是特定页面的索引

    1.3K20

    ASP.Net请求处理机制初步探索之旅 - Part 4 WebForm页面生命周期

    每一个ASP.NET Page页都有2个部分:一个部分是在浏览器中进行显示部分,包含了HTML标签、viewstate形式隐藏域 以及 在HTML input中数据。...在这部分中我们没有获得viewstate、提交数据及已经初始化控件。...这个事件,我们可以访问所有控件viewstate、他们发送过来。 5 Validate Yes Yes Yes 如果你页面有验证器或者你想为你页面执行验证,那就在这里做吧。...7 Pre-render Yes Yes Yes 如果你想对UI对象做最终修改,如改变属性结构或属性,在这些控件保存到ViewState之前。...那么,我们不禁会问,为何还要第二次进行ProcessPostData方法调用,我们刚刚不是都已经对ViewState进行了解码并对应到了对应控件树中控件了嘛?

    1.4K20

    ViewState 剖析

    大家好,又见面了,我是你们朋友全栈君。 ViewState是什么? 1. ViewState 不是用来恢复回发控件。 这个是通过匹配 form 中该控件变量名而自动完成。...这个只对 Load 事件加载之前创建控件有效。 2. ViewState 不会自动重新创建任何通过代码动态创建控件。 3. 不是用来保存用户信息。仅仅保存本页控件状态,而不能在页面之间传递。...ViewState 是什么ViewState 用来跟踪和保存控件状态信息。否则这些信息可能会丢失,原因可能是这些不随着 form 回发,或者根本就不在 page html 中。...ViewState 中保存着代码中改变控件属性,通过代码绑定到控件任何数据,以及由用户操作触发,回发任何更改。...Second 对象: 该控件控件树中索引 ArrayList Third 对象: 子控件类似的三元组 ArrayList Listing 5: ViewState Decode/Parse

    46330

    ASP.Net MVC开发基础学习笔记:一、走向MVC模式

    (1)WebForm 优点: 1.提供了大量服务器端控件,可以实现快速开发;      2.ViewState回传数据很方便;      3.学习成本低; 缺点: 1....ViewState在页面中传递会造成大量流量消耗; TIP:有关WebForm服务器控件ViewState详细介绍,不了解朋友可以阅读另一篇博文《ASP.Net WebForm学习笔记:aspx...,更易于敏捷开发与测试驱动开发,有很强可扩展性;      2.因为没有服务器端控件,所以程序员控制会更加灵活,页面更加干净,没有ViewState;      3.通过修改路由规则,可以控制生成自定义...。...所以,所有的请求都是要指定一个具体Action,Url格式是根据路由规则来定那么,在ASP.Net MVC路由规则默认又是什么,在哪里设置呢?

    2K30

    ASP.NET页面事件:顺序与回传详解

    不过,ViewState和传回还不会应用到控件上,因此,任何被代码或用户改变还没有被恢复到控件上。这个方法通常是最好创建、重创建动态控件好地方。   ...当得到ViewState后,下一个方法LoadViewSate,将以递归方式恢复ViewState到页面及各个页面控件或子控件中。...三、事件处理   下一个方法还是ProcessPostData,实际上就是前一个方法另一次调用,仍然是只在回传时候执行并且由于是私有方法不可以被重写。...任何在这以后创建控件将可以得到他们ViewState,但是不能再得到他们回传,并且不会触发任何改变事件(Change Event)。   ...除非使用了AutoPostBack,不然这是实际提交表单事件执行地方,特别是按钮或者其实使用JavaScript提交表单等。如果还没有被手动调用过并且使用了验证控件那么Validate会被调用。

    1.1K20

    GridView数据库分页+自定义分页导航(二):自定义分页导航。首页、上一页、下一页、尾页和跳转

    先进入模板编辑模式,选择【PagerTemplate】,添加自己所需导航控件 ?...列入这样,上一页和下一页和GO使用【LinkButton】,也可使用其他控件,【注:LinkButton 在编译后是HTMLa标签】, ?...这里页数使用ViewState[]存储,因为,在点击控件后,会进行一个提交,控件默认submit,提交后变量值都会被清空,而ViewState可以存储我们变量值。...DataBound方法里添加,两个作用差不多,viewData是我们自己绑定数据,只要加载最后,是可以完成,这里我们使用第二种DataBound方法,它是在GridView数据全部绑定完成后自动执行一个方法...然后就是跳转,我们要获取到下拉框选中,然后进行跳转,这句作用是找到GridView底部Pager行,并在这行中找到“pageLIst”这个控件,再获取他,我只有用这句才能获取到,如果大家有其他方式获取到

    1.7K10

    分页控件(未完,待续)——控件件介绍及思路

    网站网页一般是不需要使用ViewState来保存信息,使用URL分页也可以方便让访问者直接进入指定页号页面。另外一个好处就是可以使用“后退”功能来访问以前访问页面。...七、 优点 1、 不需要存储过程 不知道为什么一提到分页(尤其是高效率分页)往往就要想到存储过程。不用存储过程就不能分页了吗?想想存储过程里面放是什么呢?还不是SQL语句嘛。...那么为什么不能在程序(分页控件)里面组合SQL语句不呢? 使用存储过程分页有两种方式:一是有一个要分页页面就写一个存储过程(有100个几乎就要写100个了)。...统计报表地方好像不需要了。处理好这个基本问题会让您开打轻松不少吧。 3、 个人感觉 对于我个人来说,这个分页控件就是“核心”了。我在写网站时候一大半时间都是在围绕分页控件来做。...建立视图——给分页控件属性赋值——得到记录集——在.aspx页面里面显示“格式化”数据。写代码变成了给分页控件赋值,赋值之后后台也就不需要在写什么代码了。

    97570

    一个保存数据方法(可以切换存放位置,可以设置密钥)

    ViewState比较符合第二个问题要求,但是他不太安全,表面上看他存放在客户端是乱码,其实是可以解密,解密之后就是明文了,你存放是什么就一目了然。...如果是使用ViewState保存一般数据倒也是没有什么问题,但是我想保存是表名、字段名、SQL语句这样很敏感数据,这样数据放在ViewState里面,估计会被人骂死,呵呵。       ...我们一般都是习惯在Page_Load函数里面给属性赋值,但是我要加事件却是在Page_Load之前执行,也就是说如果在Page_Load里面赋值的话,即使把事件加上了,那么也早已经失去了执行机会。...Ps:这个难题解决之后,QuickPager分页控件就可以一份为二了,变成QuickPager_UI、QuickPager_SQL两个部分,再加上我数据访问函数库和现实数据控件,就是一套完整分页解决方案了...QuickPager_SQL就是专门处理分页算法(也就是分页用SQL语句),这些部分都可以独立使用,也可以替换成其他控件、类库。       下面是源码,源文件等整理之后和分页控件一起发送。

    1.1K100

    ASP.Net MVC开发基础学习笔记:一、走向MVC模式

    三、WebForm vs MVC   (1)WebForm 优点: 1.提供了大量服务器端控件,可以实现快速开发;      2.ViewState回传数据很方便;      3.学习成本低;...ViewState在页面中传递会造成大量流量消耗; TIP:有关WebForm服务器控件ViewState详细介绍,不了解朋友可以阅读另一篇博文《ASP.Net WebForm学习笔记:aspx...,更易于敏捷开发与测试驱动开发,有很强可扩展性;      2.因为没有服务器端控件,所以程序员控制会更加灵活,页面更加干净,没有ViewState;      3.通过修改路由规则,可以控制生成自定义...。...所以,所有的请求都是要指定一个具体Action,Url格式是根据路由规则来定那么,在ASP.Net MVC路由规则默认又是什么,在哪里设置呢?

    90120

    ASP.Net WebForm温故知新学习笔记:一、aspx与服务器控件探秘

    "); 5 } 6 %>   ②获取C#方法返回   假设页面后端代码中有一个GetServerTime方法,只有一句代码:return DateTime.Now.ToString...页面中只需要通过即可获取该方法返回。...),而aspx则起到了类似于于一个模板引擎作用,帮我们把html大体框架定义好了,我们在开发中就只需要操作每次响应需要更改内容即可。...实际上,IsPostBack属性是根据ViewState一些特殊键值对来判断赋值(因为:每次提交请求后,服务器端都会返回不同ViewState隐藏域给浏览器端;同样,浏览器每次也会将ViewState...如果我们禁用了ViewState那么也就无法正常使用IsPostBack属性了,也无法正常使用PostBack了。那么对于ViewState,我会在下一篇进行简单探秘,本篇就到此为止。

    2.8K42
    领券