StateBag 類別
定義
重要
部分資訊涉及發行前產品,在發行之前可能會有大幅修改。 Microsoft 對此處提供的資訊,不做任何明確或隱含的瑕疵擔保。
管理 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
- 實作
範例
下列程式代碼範例示範具有 Text
和 FontSize
屬性的複合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 | |
Item[String] |
取得或設定儲存於 StateBag 物件中的項目值。 |
Keys |
取得表示 StateBag 物件中項目的索引鍵集合。 |
Values |
取得儲存於 StateBag 物件中的檢視狀態值的集合。 |
方法
Add(String, Object) |
將新 StateItem 物件加入至 StateBag 物件。 如果項目已經存在於 StateBag 物件中,則此方法會更新項目的值。 |
Clear() |
從目前 StateBag 物件移除所有項目。 |
Equals(Object) |
判斷指定的物件是否等於目前的物件。 (繼承來源 Object) |
GetEnumerator() | |
GetHashCode() |
做為預設雜湊函式。 (繼承來源 Object) |
GetType() |
取得目前執行個體的 Type。 (繼承來源 Object) |
IsItemDirty(String) |
檢查儲存於 StateItem 物件的 StateBag 物件,以評估自從呼叫 TrackViewState() 以來,它是否已經被修改。 |
MemberwiseClone() |
建立目前 Object 的淺層複製。 (繼承來源 Object) |
Remove(String) |
從 StateBag 物件移除指定的索引鍵/數值配對。 |
SetDirty(Boolean) | |
SetItemDirty(String, Boolean) | |
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。 |