- Rongsen.Com.Cn 版权所有 2008-2010 京ICP备08007000号 京公海网安备11010802026356号 朝阳网安编号:110105199号
- 北京黑客防线网安工作室-黑客防线网安服务器维护基地为您提供专业的
服务器维护
,企业网站维护
,网站维护
服务 - (建议采用1024×768分辨率,以达到最佳视觉效果) Powered by 黑客防线网安 ©2009-2010 www.rongsen.com.cn
作者:黑客防线网安ASP维护基地 来源:黑客防线网安ASP维护基地 浏览次数:0 |
在控件开发时,有时候需要清除子控件的页面状态,比如在创建子控件时,以下是一个在数据绑定时清除视图并创建子控件的应用场景:
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。
我要申请本站:N点 | 黑客防线官网 | |
专业服务器维护及网站维护手工安全搭建环境,网站安全加固服务。黑客防线网安服务器维护基地招商进行中!QQ:29769479 |