Cet article a fait l'objet d'une traduction manuelle. Déplacez votre pointeur sur les phrases de l'article pour voir la version originale de ce texte. |
Traduction
Source
|
Control.SaveControlState, méthode
Enregistre les modifications éventuellement apportées à l'état du contrôle serveur depuis la publication de la page sur le serveur.
Assembly : System.Web (dans System.Web.dll)
Utilisez la méthode SaveControlState pour enregistrer des informations d'état requises pour l'opération d'un contrôle spécifique. Ces données sur l'état du contrôle sont stockées séparément des données sur l'état d'affichage du contrôle.
Les contrôles personnalisés qui utilisent l'état du contrôle doivent appeler la méthode RegisterRequiresControlState sur Page avant d'enregistrer l'état du contrôle.
Remarques à l'attention des héritiers
Lorsque l'état du contrôle est enregistré, un objet chaîne est retourné au client sous la forme d'une variable stockée dans un élément HTML HIDDEN. Substituez cette méthode pour extraire les informations d'état à utiliser dans votre contrôle.
L'état du contrôle est conçu pour être utilisé pour petites quantités de données critiques, telles qu'un index de page ou un mot clé. Utiliser l'état du contrôle pour d'importantes quantités de données peut affecter la performance de page. Pour plus d'informations, consultez Vue d'ensemble de la gestion d'état ASP.NET.
L'exemple de code suivant substitue la méthode SaveControlState dans un contrôle ASP.NET personnalisé. Lorsque cette méthode est appelée, elle détermine si une valeur autre que celle utilisée par défaut est affectée à la propriété interne currentIndex ; si tel est le cas, elle enregistre la valeur sur l'état du contrôle.
La méthode OnInit est substituée pour appeler la méthode RegisterRequiresControlState sur la Page pour indiquer que le contrôle personnalisé utilise l'état du 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; } } }
Windows 7, Windows Vista SP1 ou ultérieur, Windows XP SP3, Windows XP SP2 Édition x64, Windows Server 2008 (installation minimale non prise en charge), Windows Server 2008 R2 (installation minimale prise en charge avec SP1 ou version ultérieure), Windows Server 2003 SP2
Le .NET Framework ne prend pas en charge toutes les versions de chaque plateforme. Pour obtenir la liste des versions prises en charge, consultez Configuration requise du .NET Framework.