在ASP.NET中清除页面状态
来源:互联网 发布:阿里云企业邮箱登录app 编辑:程序博客网 时间:2024/05/22 04:35
清除页面状态
本文节选自《庖丁解牛:纵向切入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中清除缓存
- ASP.NET清除页面缓存
- ASP.NET清除页面缓存
- asp.net 页面清除缓存
- asp.net 页面清除缓存
- ASP.NET清除页面缓存
- ASP.NET清除页面缓存
- ASP.NET清除页面缓存
- ASP.NET清除页面缓存
- ASP.NET清除页面缓存
- asp.net清除页面缓存
- asp.net 页面清除缓存
- 在ASP.NET中页面间传值
- 在Asp.net中自定义异常页面
- asp.net中怎样在页面间传值?
- 在ASP.NET中加密页面机制
- 在ASP.NET中页面传值
- CSS和JS的关系
- 可以查询正则表达式的网站
- PHP作图(四)(完)
- 使用SQL视图查出所有的数据库字典
- vi编辑器使用指南
- 在ASP.NET中清除页面状态
- 雷军:这样的程序员创业有戏(转)
- python与sqlite3分析
- SQL Server和MySQL的自增字段建立
- 用HashSet()实现重新建立一个没有重复数据的数组
- 色彩搭配方案与其特性描述
- DNS服务器测试工具――queryperf
- Ajax实现二级联动下拉框
- 【笑话】错发短信 ------ 在我们学校bbs看到的,挺有意思,哈哈