다음을 통해 공유


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
구현

예제

다음 코드 예제에서는 및 속성이 있는 복합 Label 컨트롤을 Text 보여 줍니다 FontSize . 이러한 속성은 에 저장되고 컨트롤에서 메서드가 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 및 웹 서버 컨트롤에 대한 기본 스토리지 메커니즘입니다. 특성/값 쌍을 컨트롤과 연결된 문자열로 저장합니다. 페이지 요청에 대해 메서드를 실행한 후에만 이러한 특성의 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)

IEnumerableIQueryable로 변환합니다.

적용 대상

추가 정보