Control.SaveControlState Méthode
Définition
Important
Certaines informations portent sur la préversion du produit qui est susceptible d’être en grande partie modifiée avant sa publication. Microsoft exclut toute garantie, expresse ou implicite, concernant les informations fournies ici.
Enregistre tous les changements d’état de contrôle serveur qui ont eu lieu depuis que la page a été publiée sur le serveur.
protected public:
virtual System::Object ^ SaveControlState();
protected internal virtual object SaveControlState ();
abstract member SaveControlState : unit -> obj
override this.SaveControlState : unit -> obj
Protected Friend Overridable Function SaveControlState () As Object
Retours
Retourne l’état actuel du contrôle serveur. Si aucun état n’est associé au contrôle, cette méthode retourne null
.
Exemples
L’exemple de code suivant remplace la SaveControlState méthode dans un contrôle ASP.NET personnalisé. Lorsque cette méthode est appelée, elle détermine si la propriété currentIndex
interne est définie sur une valeur autre que par défaut et, si c’est le cas, enregistre la valeur dans un état de contrôle.
La OnInit méthode est remplacée pour appeler la RegisterRequiresControlState méthode sur le Page pour indiquer que le contrôle personnalisé utilise l’état de contrôle.
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;
}
}
}
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
Remarques
Utilisez la SaveControlState méthode pour enregistrer les informations d’état requises pour le fonctionnement d’un contrôle spécifique. Ces données d’état du contrôle sont stockées séparément des données d’état d’affichage du contrôle.
Les contrôles personnalisés utilisant l’état de contrôle doivent appeler la RegisterRequiresControlState méthode sur le avant d’enregistrer l’état Page de contrôle.
Notes pour les héritiers
Lorsque l’état du contrôle est enregistré, un objet string est retourné au client en tant que variable stockée dans un élément HTML HIDDEN
. Remplacez cette méthode pour extraire les informations d’état à utiliser dans votre contrôle.
L’état de contrôle est destiné à de petites quantités de données critiques, telles qu’un index de page ou un mot clé. L’utilisation de l’état de contrôle pour de grandes quantités de données peut nuire aux performances de la page. Pour plus d’informations, consultez ASP.NET Vue d’ensemble de la gestion de l’état.