Control.SaveControlState Méthode

Définition

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.Saves any server control state changes that have occurred since the time the page was posted back to the server.

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.Returns the server control's current state. Si aucun état n’est associé au contrôle, cette méthode retourne null.If there is no state associated with the control, this method returns null.

Exemples

L’exemple de code suivant remplace la méthode SaveControlState dans un contrôle ASP.NET personnalisé.The following code example overrides the SaveControlState method in a custom ASP.NET control. Lorsque cette méthode est appelée, elle détermine si la propriété interne currentIndex est définie sur une valeur non définie par défaut et, si tel est le cas, enregistre la valeur dans l’état du contrôle.When this method is invoked, it determines whether the internal property currentIndex is set to a non-default value and, if so, saves the value to control state.

La méthode OnInit est substituée pour appeler la méthode RegisterRequiresControlState sur le Page pour indiquer que le contrôle personnalisé utilise l’état du contrôle.The OnInit method is overridden to call the RegisterRequiresControlState method on the Page to indicate that the custom control uses control state.

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 méthode SaveControlState pour enregistrer les informations d’État requises pour l’opération d’un contrôle spécifique.Use the SaveControlState method to save state information required for the operation of a specific control. Ces données d’état de contrôle sont stockées séparément des données d’état d’affichage du contrôle.This control-state data is stored separately from the control's view-state data.

Les contrôles personnalisés qui utilisent l’état du contrôle doivent appeler la méthode RegisterRequiresControlState sur l' Page avant d’enregistrer l’état du contrôle.Custom controls using control state must call the RegisterRequiresControlState method on the Page before saving control state.

Notes pour les héritiers

Lorsque l’état du contrôle est enregistré, un objet String est retourné au client sous la forme d’une variable stockée dans un élément HIDDEN HTML.When control state is saved, a string object is returned to the client as a variable that is stored in an HTML HIDDEN element. Substituez cette méthode pour extraire les informations d’État à utiliser dans votre contrôle.Override this method to extract the state information to use in your control.

L’état du contrôle est destiné à de petites quantités de données critiques, telles qu’un index de page ou un mot clé.Control state is intended for small amounts of critical data, such as a page index or a keyword. L’utilisation de l’état du contrôle pour de grandes quantités de données peut nuire aux performances des pages.Using control state for large amounts of data can adversely affect page performance. Pour plus d’informations, consultez vue d’ensemble de la gestion d’état ASP.net.For more information, see ASP.NET State Management Overview.

S’applique à

Voir aussi