Metodo Control.SaveControlState (System.Web.UI)

Cambia visualizzazione:
ScriptFree
Riferimento a .NET Framework
Metodo Control.SaveControlState
Il presente articolo è stato tradotto manualmente. Per visualizzare questa pagina e contemporaneamente visualizzarne il contenuto in lingua inglese, passare alla visualizzazione semplificata.

Salva le modifiche allo stato di un controllo server apportate dal momento in cui è stato eseguito il postback della pagina al server.

Spazio dei nomi:  System.Web.UI
Assembly:  System.Web (in System.Web.dll)
Sintassi

Visual Basic
Protected Friend Overridable Function SaveControlState As Object
C#
protected internal virtual Object SaveControlState()
Visual C++
protected public:
virtual Object^ SaveControlState()
F#
abstract SaveControlState : unit -> Object 
override SaveControlState : unit -> Object 

Valore restituito

Tipo: System.Object
Restituisce lo stato corrente del controllo server. Se al controllo non è associato alcuno stato, questo metodo restituisce null.
Note

Utilizzare il metodo SaveControlState per salvare le informazioni sullo stato necessarie per il funzionamento di un controllo specifico. Questi dati sullo stato del controllo vengono archiviati separatamente dai dati sullo stato di visualizzazione del controllo.

I controlli personalizzati che utilizzano lo stato del controllo devono chiamare il metodo RegisterRequiresControlState per la proprietà Page prima del salvataggio dello stato del controllo.

Note per gli eredi

Dopo che lo stato del controllo è stato salvato, al client viene restituito un oggetto stringa come variabile archiviata in un elemento HIDDEN HTML. Eseguire l'override di questo metodo per estrarre le informazioni sullo stato da utilizzare nel controllo.

Lo stato del controllo è utile per quantità esigue di dati critici, ad esempio l'indice di una pagina o una parola chiave. L'utilizzo dello stato del controllo per grandi quantità di dati può incidere negativamente sulle prestazioni delle pagine. Per ulteriori informazioni, vedere Cenni preliminari sulla gestione dello stato ASP.NET.

Esempi

Nell'esempio di codice riportato di seguito viene eseguito l'override del metodo SaveControlState di un controllo ASP.NET personalizzato. Quando si chiama questo metodo, viene determinato se la proprietà interna currentIndex è impostata su un valore non predefinito e, in tal caso, il valore viene salvato nelle informazioni sullo stato del controllo.

Il metodo OnInit viene sottoposto a override in modo da chiamare il metodo RegisterRequiresControlState per Page per indicare che il controllo personalizzato utilizza lo stato del controllo.

Visual Basic

Class Sample
  Inherits Control

  Dim currentIndex As Integer

      Protected Overrides Sub OnInit(ByVal e As EventArgs)
          Page.RegisterRequiresControlState(Me)
          currentIndex = 0
          MyBase.OnInit(e)
      End Sub

      Protected Overrides Function SaveControlState() As Object
          If currentIndex <> 0 Then
              Return CType(currentIndex, Object)
          Else
              Return Nothing
          End If
      End Function

      Protected Overrides Sub LoadControlState(ByVal state As Object)
          If (state <> Nothing) Then
              currentIndex = CType(state, Integer)
          End If
      End Sub

End Class


C#

public class Sample : Control {
    private int currentIndex = 0;

    protected override void OnInit(EventArgs e) {
        Page.RegisterRequiresControlState(this);
        base.OnInit(e);
    }

    protected override object SaveControlState() {
        return currentIndex != 0 ? (object)currentIndex : null;
    }

    protected override void LoadControlState(object state) {
        if (state != null) {
            currentIndex = (int)state;
        }
    }
}


Informazioni sulla versione

.NET Framework

Supportato in: 4, 3.5, 3.0, 2.0
Piattaforme

Windows 7, Windows Vista SP1 o versione successiva, Windows XP SP3, Windows XP SP2 x64 Edition, Windows Server 2008 (componenti di base del server non supportati), Windows Server 2008 R2 (componenti di base del server supportati con SP1 o versione successiva), Windows Server 2003 SP2

.NET Framework non supporta tutte le versioni di ciascuna piattaforma. Per un elenco delle versioni supportate, vedere Requisiti di sistema di .NET Framework.
Vedere anche

Riferimenti

Altre risorse