Salva le modifiche allo stato di un controllo server apportate dal momento in cui è stato eseguito il postback della pagina al server.
Assembly: System.Web (in System.Web.dll)
Protected Friend Overridable Function SaveControlState As Object
protected internal virtual Object SaveControlState()
protected public: virtual Object^ SaveControlState()
abstract SaveControlState : unit -> Object override SaveControlState : unit -> Object
Valore restituito
Tipo: System.ObjectRestituisce lo stato corrente del controllo server. Se al controllo non è associato alcuno stato, questo metodo restituisce null.
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.
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.
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
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; } } }
.NET Framework
Supportato in: 4, 3.5, 3.0, 2.0Windows 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.