`
cloudtech
  • 浏览: 4619991 次
  • 性别: Icon_minigender_1
  • 来自: 武汉
文章分类
社区版块
存档分类
最新评论

在ASP.NET中清除页面状态

 
阅读更多

清除页面状态

本文节选自《庖丁解牛:纵向切入ASP.NET 3.5控件和组件开发技术》一书

在控件开发时,有时候需要清除子控件的页面状态,比如在创建子控件时,以下是一个在数据绑定时清除视图并创建子控件的应用场景:
/// <summary>
/// 获得本书更多内容,请看:
/// http://blog.csdn.net/ChengKing/archive/2008/08/18/2792440.aspx
/// </summary>
public override void DataBind()
{
base.OnDataBinding(EventArgs.Empty);
Controls.Clear();
ClearChildViewState(); //清理视图状态
TrackViewState();
CreateControlHierarchy(true);
ChildControlsCreated = true;
}
本节介绍几个清理页面状态的方法,主要由Control基类提供。
1.HasChildViewState方法
获取一个值,该值指示当前服务器控件的子控件是否具有任何已保存的视图状态设置。如果有任何子控件具有已保存的视图状态信息,则返回true;否则返回false。
2.IsChildControlStateCleared方法
获取一个值,该值指示当前控件中包含的控件是否具有控件状态。如果该控件的子级不使用控件状态,则返回true;否则返回false。
3.ClearChildState方法
同时清除子控件的视图状态和控件状态。其方法体如下:
protected void ClearChildState()
{
this.ClearChildControlState();
this.ClearChildViewState();
}
4.ClearChildControlState方法
清除控件状态。其代码如下:
protected void ClearChildControlState()
{
if (this.ControlState >= ControlState.Initialized)
{
this.flags.Set(0x40000);
if (this.Page != null)
{
this.Page.RegisterRequiresClearChildControlState(this);
}
}
}
控件状态是通过方法:
Page.RegisterRequiresControlState(this);
将控件注册为具有持久性控件状态的控件。同时也要调用方法:
this.Page.RegisterRequiresClearChildControlState(this);
清除控件状态,不同的是:此方法是内部方法。不供开发人员调用,只能通过ClearChild ControlState方法间接调用。
5.ClearChildViewState方法
此方法主要清除子控件的视图状态,其代码结构如下:
protected void ClearChildViewState()
{
if (this._occasionalFields != null)
{
this._occasionalFields.ControlsViewState = null;
}
}
方法体中设置控件视图状态的IDictionary对象ControlsViewState为null。

分享到:
评论

相关推荐

    ASP.NET的网页代码模型及生命周期

    在ASP.NET中,同样具有隐藏域来保存页面的信息,作为维护页面状态的一种形式,但是隐藏域的安全性并不高,最好不要在隐藏域保存过多的信息。隐藏域具有以下优点。 q 不需要任何服务器资源。 q 支持广泛,任何客户端...

    asp.net知识库

    在ASP.NET页面中推荐使用覆写(Override)而不是事件处理(Event Handler) 常用编码工具类,支持base64,md5,des,crc32 也谈谈技术面试 在C#里把ArrayList转换为Array 或 把Array转换为ArrayList C# 2.0 在.NET 2.0中...

    ASP.NET4高级程序设计第4版 带目录PDF 分卷压缩包 part1

    6.2.2 在视图状态中保存对象 6.2.3 视图状态评估 6.2.4 有选择地禁用视图状态 6.2.5 视图状态安全 6.3 在页面间传送信息 6.3.1 查询字符串 6.3.2 跨页回发 6.4 cookie 6.5 会话状态 6.5.1 会话...

    ASP.NET4高级程序设计(第4版) 3/3

    6.2.2 在视图状态中保存对象 181 6.2.3 视图状态评估 183 6.2.4 有选择地禁用视图状态 184 6.2.5 视图状态安全 185 6.3 在页面间传送信息 186 6.3.1 查询字符串 187 6.3.2 跨页回发 188 6.4 cookie ...

    庖丁解牛:纵向切入ASP.NET 3.5控件和组件开发技术

    6.4.2 istatemanager接口仍然可以在控件状态中使用 223 6.4.3 视图状态和控件状态组合使用规则 225 6.5 加密页面状态 225 6.6 清除页面状态 226 6.7 对动态添加控件的视图状态分析 228 6.8 自定义类型转换器...

    ASP.NET 2.0+SQL Server 2005全程指南-源代码

    第5章 ASP.NET 2.0对象、状态和配置 5.1 Response对象和Request对象 5.1.1 Response对象 5.1.2 Request对象 5.2 HTTP请求上下文 5.2.1 应用程序状态 5.2.2 Server对象 5.2.3 使用Server对象中Execute()和...

    asp.net面试题

    八、ASP.NET有多种维护状态的技术,以下哪种是保存在客户端的?( ) A.VIEWSTATEB.SESSIONC.APPLICATIOND.数据CACHE 九、Cookies的默认生命周期有多长? ( ) A.20分钟B.30分钟C. 一天D.随浏览器的关闭而失效 十...

    庖丁解牛纵向切入ASP.NET 3.5控件和组件开发技术.pdf

    6.4.2 istatemanager接口仍然可以在控件状态中使用223 6.4.3 视图状态和控件状态组合使用规则225 6.5 加密页面状态225 6.6 清除页面状态226 6.7 对动态添加控件的视图状态分析228 6.8 自定义类型转换器实现高...

    庖丁解牛 纵向切入ASP.NET 3.5控件和组件开发 part1

    6.4.2 istatemanager接口仍然可以在控件状态中使用 223 6.4.3 视图状态和控件状态组合使用规则 225 6.5 加密页面状态 225 6.6 清除页面状态 226 6.7 对动态添加控件的视图状态分析 228 6.8 自定义类型转换器...

    庖丁解牛 纵向切入ASP.NET 3.5控件和组件开发 part2

    6.4.2 istatemanager接口仍然可以在控件状态中使用 223 6.4.3 视图状态和控件状态组合使用规则 225 6.5 加密页面状态 225 6.6 清除页面状态 226 6.7 对动态添加控件的视图状态分析 228 6.8 自定义类型转换器...

    Gridview读Excel分页记录选中状态跳转页面传参

    1.Excel数据来填充Gridview (或是Gridview读取Excel数据) 2.Gridview分页 3.分页模版包含首页,上一页,下一页,尾页,跳转到某页 4.Gridview内嵌套Checkbox...希望对学习asp.net的童鞋有所帮助.程序拿走直接可以运行

    ASP.NET编程之道.part1.rar

    谬误20 必须在页面添加元素才能使用CSS文件中的样式 第3篇 技术细节篇 第5章 必知必会的40个C#语言方面的技术细节 细节01 给C#代码加注释的意义 细节02 装箱和拆箱 细节03 理解值类型和引用类型 细节04 隐式转换和...

    net学习笔记及其他代码应用

    列举ASP.NET 页面之间传递值的几种方式。 答. 1.使用QueryString, 如....?id=1; response. Redirect().... 2.使用Session变量 3.使用Server.Transfer 3. 一列数的规则如下: 1、1、2、3、5、8、13、21、34...... ...

    asp.net session的使用与过期实例代码

    1.Session是一种Web会话中的常用状态之一。 2.Session提供了一种把信息保存在服务器内存中的方式。他能储存任何数据类型,包含自定义对象。 3.每个客户端的Seesion是独立存储的。 4.在整个会话过程中,只要SessionID...

    ASP200问.EXE

    第2章 ASP.NET运行模型 12.如何定义变量和判定变量类型 13.什么是变量的作用域 14.如何强制要求显式声明变量 15.如何保留或消除过程调用对变量的影响 16.如何创建和调整动态数组 18.如何计算中英文混合字符串的...

    浮动聊天程序for ASP website,支持私聊,本程序可以很轻松的整合到ASP语言设计的网站以BLOG程序中

    1.适用于所在ASP站点,自动识别站点名称(也可在配置文件中自己修改,参考第3步),界面美观。 2.管理员身份通过配置程序自行指定,随机自动分配游客身份,自行统计在线人数。 3.安装简单方便,下载附件解压后直接上传...

    ASP.NET Session的实现原理分析

    用户向服务器提交请求时,服务器都会给每个用户分配一个SessionId,保存在用户浏览器的Cookies中,SessionId是全局的,也是说只要Cookies还存在,服务器会认为这是同一个用户,从而实现了每个用户都有自己独立的全局...

    NopCommerce 1.6 中文源码包.rar

    NopCommerce采用ASP.NET 3.5开发,使用MS-SQL2005数据库,可以部署在godaddy的Windows系列主机。主机环境搭配好的话,部署它只需要几分钟。 NopCommerce 1.6 中文源码包 功能改进: •社会书签 •允许店主隐瞒非...

Global site tag (gtag.js) - Google Analytics