控件開發時有時需清除子控件的頁面狀態,例如資料繫結時重建子控件:
public override void DataBind()
{
base.OnDataBinding(EventArgs.Empty);
Controls.Clear();
ClearChildViewState(); // 清理視圖狀態
TrackViewState();
CreateControlHierarchy(true);
ChildControlsCreated = true;
}
本節介紹 Control 基類提供的幾個清理方法:
HasChildViewState:檢查子控件是否有已儲存的視圖狀態。IsChildControlStateCleared:檢查子控件是否使用控件狀態。ClearChildState:同時清除子控件的視圖狀態與控件狀態。ClearChildControlState:清除控件狀態,內部標記旗標並向頁面註冊清除需求。(程式碼片段保留)