StateBag 類別

定義

管理 ASP.NET 伺服器控制項的檢視狀態 (包括網頁)。 此類別無法獲得繼承。

public ref class StateBag sealed : System::Collections::IDictionary, System::Web::UI::IStateManager
public sealed class StateBag : System.Collections.IDictionary, System.Web.UI.IStateManager
type StateBag = class
    interface IStateManager
    interface IDictionary
    interface ICollection
    interface IEnumerable
Public NotInheritable Class StateBag
Implements IDictionary, IStateManager
繼承
StateBag
實作

範例

下列程式碼範例示範具有 TextFontSize 屬性的複合 Label 控制項。 在 控制項上呼叫 方法時 Control.Render ,這些屬性會儲存至檢視狀態並從檢視狀態擷取。

// This control renders values stored in view state for Text and FontSize properties.
using System;
using System.Web;
using System.Web.UI;

namespace ViewStateControlSamples
{

    public class CustomLabel : Control
    {
        private const int defaultFontSize = 3;

        // Add property values to view state with set;
        // retrieve them from view state with get.
        public String Text
        {
            get 
            { 
                object o = ViewState["Text"]; 
                return (o == null)? String.Empty : (string)o;
            }

            set
            {
                ViewState["Text"] = value;
            }
        }


        public int FontSize
        {
            get
            {
                object o = ViewState["FontSize"];
                return (o == null) ? defaultFontSize : (int)o;
            }
            set
            {
                ViewState["FontSize"] = value;
            }
        }

        [System.Security.Permissions.PermissionSet(System.Security.Permissions.SecurityAction.Demand, Name = "FullTrust")]
        protected override void Render(HtmlTextWriter output)
        {
            output.Write("<font size=" + this.FontSize.ToString() + ">" + this.Text + "</font>");
        }
    }
}
' This control renders values stored in view state for Text and FontSize properties.

Imports System.Web
Imports System.Web.UI

Namespace ViewStateControlSamples

    Public Class CustomLabel : Inherits Control
        Private Const defaultFontSize As Integer = 3

        ' Add property values to view state with set; 
        ' retrieve them from view state with get.
        Public Property [Text]() As String
            Get
                Dim o As Object = ViewState("Text")
                If (IsNothing(o)) Then
                    Return String.Empty
                Else
                    Return CStr(o)
                End If
            End Get
            Set(ByVal value As String)
                ViewState("Text") = value
            End Set
        End Property


        Public Property FontSize() As Integer
            Get
                Dim o As Object = ViewState("FontSize")
                If (IsNothing(o)) Then
                    Return defaultFontSize
                Else
                    Return CInt(ViewState("FontSize"))
                End If

            End Get
            Set(ByVal value As Integer)
                ViewState("FontSize") = value
            End Set
        End Property
        <System.Security.Permissions.PermissionSetAttribute(System.Security.Permissions.SecurityAction.Demand, Name:="FullTrust")> _
        Protected Overrides Sub Render(ByVal Output As HtmlTextWriter)
            Output.Write("<font size=" & Me.FontSize & ">" & Me.Text & "</font>")
        End Sub

    End Class

End Namespace

備註

頁面或控制項的檢視狀態是該頁面或控制項的累計屬性值或檢視。 您可以透過 Control.ViewState 屬性存取這個類別。 控制項也可以將基本狀態資訊儲存在控制項狀態,但該資訊不會儲存為 StateBag 物件。

這個類別是所有 HTML 和 Web 服務器控制項的主要儲存機制。 它會將屬性/值組儲存為與 控制項相關聯的字串。 只有在針對頁面要求執行 方法之後 OnInit ,才會追蹤這些屬性的變更,並將變更儲存至頁面或控制項的檢視狀態。

這個類別會實作字典,而且您可以新增專案,或從中移除專案,就像是任何字典物件一樣。 如需資料集合的詳細資訊,例如字典,請參閱 集合和資料結構

建構函式

StateBag()

初始化 StateBag 類別的新執行個體。 這是此類別的無參數建構函式。

StateBag(Boolean)

初始化 StateBag 類別的新執行個體,允許儲存的狀態值不區分大小寫。

屬性

Count

取得 StateItem 物件中 StateBag 物件的數目。

Item[String]

取得或設定儲存於 StateBag 物件中的項目值。

Keys

取得表示 StateBag 物件中項目的索引鍵集合。

Values

取得儲存於 StateBag 物件中的檢視狀態值的集合。

方法

Add(String, Object)

將新 StateItem 物件加入至 StateBag 物件。 如果項目已經存在於 StateBag 物件中,則此方法會更新項目的值。

Clear()

從目前 StateBag 物件移除所有項目。

Equals(Object)

判斷指定的物件是否等於目前的物件。

(繼承來源 Object)
GetEnumerator()

傳回列舉值,它可以逐一查看儲存在 StateItem 物件中之 StateBag 物件的所有索引鍵/值組。

GetHashCode()

做為預設雜湊函式。

(繼承來源 Object)
GetType()

取得目前執行個體的 Type

(繼承來源 Object)
IsItemDirty(String)

檢查儲存於 StateItem 物件的 StateBag 物件,以評估自從呼叫 TrackViewState() 以來,它是否已經被修改。

MemberwiseClone()

建立目前 Object 的淺層複製。

(繼承來源 Object)
Remove(String)

StateBag 物件移除指定的索引鍵/數值配對。

SetDirty(Boolean)

設定 StateBag 物件的狀態,以及它所包含的每個 StateItem 物件的 Dirty 屬性。

SetItemDirty(String, Boolean)

設定 Dirty 物件中指定 StateItem 物件的 StateBag 屬性。

ToString()

傳回代表目前物件的字串。

(繼承來源 Object)

明確介面實作

ICollection.CopyTo(Array, Int32)

如需這個成員的說明,請參閱 CopyTo(Array, Int32)

ICollection.IsSynchronized

如需這個成員的說明,請參閱 IsSynchronized

ICollection.SyncRoot

如需這個成員的說明,請參閱 SyncRoot

IDictionary.Add(Object, Object)

如需這個成員的說明,請參閱 Add(Object, Object)

IDictionary.Contains(Object)

如需這個成員的說明,請參閱 Contains(Object)

IDictionary.IsFixedSize

如需這個成員的說明,請參閱 IsFixedSize

IDictionary.IsReadOnly

如需這個成員的說明,請參閱 IsReadOnly

IDictionary.Item[Object]

如需這個成員的說明,請參閱 Item[Object]

IDictionary.Remove(Object)

如需這個成員的說明,請參閱 Remove(Object)

IEnumerable.GetEnumerator()

如需這個成員的說明,請參閱 GetEnumerator()

IStateManager.IsTrackingViewState

取得指出是否已追蹤狀態變更的值。

IStateManager.LoadViewState(Object)

還原先前已儲存的 StateBag 物件檢視狀態。

IStateManager.SaveViewState()

儲存自頁面回傳至伺服器以來 StateBag 物件的變更。

IStateManager.TrackViewState()

導致 StateBag 物件追蹤其狀態的變更,以便可以跨要求持續保存。

擴充方法

Cast<TResult>(IEnumerable)

IEnumerable 的項目轉換成指定的型別。

OfType<TResult>(IEnumerable)

根據指定的型別來篩選 IEnumerable 的項目。

AsParallel(IEnumerable)

啟用查詢的平行化作業。

AsQueryable(IEnumerable)

IEnumerable 轉換成 IQueryable

適用於

另請參閱