我爱Aspx >> C#.Net >> ASP.NET2.0的控件状态和视图状态探讨基本概念
控件状态-为了让控件正常工作,有时需要存储控件状态数据。例如,如果编写了一个自定义控件,其中具有显示不同信息的不同选项卡,为使该控件如预期一样工作,控件需要知道在往返过程中选择的是哪个选项卡。ViewState 属性可用于此目的,但开发人员可能在页级别关闭了视图状态,从而有效地中断控件。为解决此问题,ASP.NET 页框架在 ASP.NET 2.0 版中公开了一种称为控件状态的新功能。
ControlState 属性允许保持特定于控件的属性信息,不像 ViewState 属性一样可以关闭。若要使用控件状态,控件必须在初始化过程中调用 RegisterRequiresControlState 方法,然后重写 SaveControlState 和 LoadControlState 方法。
视图状态-视图状态是 ASP.NET 页框架默认情况下用于保存往返过程之间的页和控件值的方法。当呈现页的 HTML 形式时,需要在回发过程中保留的页的当前状态和值将被序列化为 Base64 编码的字符串,并输出到视图状态的隐藏字段中。通过实现自定义的 PageStatePersister 类以存储页数据,您可以更改默认行为并将视图状态存储到另一个位置(如 SQL Server 数据库)。有关将页状态存储到流上而不是隐藏的页字段中的示例,请参见 视图状态持久性机制的示例。
您可以通过使用页的 ViewState 属性将往返过程中的数据保存到 Web 服务器来利用自己的代码访问视图状态。ViewState 属性是一个包含密钥/值对(其中包含视图状态数据)的字典。
各自的优势与劣势
视图状态
使用视图状态的优点:
·不需要任何服务器资源 视图状态包含在页代码内的结构中。
·实现简单 视图状态无需使用任何自定义编程。默认情况下对控件启用状态数据的维护。
·增强的安全功能 视图状态中的值经过哈希计算和压缩,并且针对 Unicode 实现进行编码,其安全性要高于使用隐藏域。
Ҷƪл˵?
讲解用.NET编写串口程序的一点心..[07-30]
asp.net ajax 使用updatepanel进..[07-30]
彻底放弃IIS让Apache也支持ASP.N..[07-30]
Asp.net Ajax 1.0 异步回调时,服..[07-30]
从本质上看网页(asp,jsp)的编..[07-30]
asp网页提升速度方法5则[07-30]
ASP.NET--制作功能完善的安装程序[07-30]
Asp.net直接保存文件到客户端[07-30]
Asp.net &C#开发中的一些注意..[07-30]
净化网络环境 ASP程序实现过滤脏..[07-30]
启动SQL SERVER时自动执行存储过..[07-30]
FireFox 内存占用巨大或CPU占用率..[07-30]
无法在SQL 2005系统数据库中执行..[07-30]
SQL SERVER的数据类型 &&..[07-30]
Linux下安装JDK,Tomcat及设置Cro..[07-30]
解决了打开Jsp文件的可恶问题[07-30]
Photoshop笔刷设置轻松绘制美丽链..[07-30]
在Flash动态文本框中加载HTML格式..[07-30]
如何恢复误删除的Linux文件[07-30]
KRM数字版权加密保护保WPS文档安..[07-30]