Поделиться через


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 объекта, а также Dirty свойство каждого из StateItem объектов, содержащихся в нем.

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 отслеживание изменений в состоянии объекта, чтобы его можно было сохранить в запросах.

Методы расширения

Имя Описание
AsParallel(IEnumerable)

Включает параллелизацию запроса.

AsQueryable(IEnumerable)

Преобразует IEnumerable в IQueryable.

Cast<TResult>(IEnumerable)

Приведение элементов IEnumerable к указанному типу.

OfType<TResult>(IEnumerable)

Фильтрует элементы IEnumerable на основе указанного типа.

Применяется к

См. также раздел