程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> .NET網頁編程 >> ASP.NET >> 關於ASP.NET >> 庖丁解牛Asp.net3.5控件和組件開發技術系列—頁面狀態機制(四)

庖丁解牛Asp.net3.5控件和組件開發技術系列—頁面狀態機制(四)

編輯:關於ASP.NET

6.6 清除頁面狀態

在控件開發時,有時候需要清除子控件的頁面狀態,比如在創建子控件時,以下是一個在數據綁定時清除視圖並創建子控件的應用場景:

/// <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);
     }
   }
}

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved