Control.SaveControlState Metod
Definition
Viktigt
En del information gäller för förhandsversionen av en produkt och kan komma att ändras avsevärt innan produkten blir allmänt tillgänglig. Microsoft lämnar inga garantier, uttryckliga eller underförstådda, avseende informationen som visas här.
Sparar alla ändringar i serverkontrolltillståndet som har inträffat sedan sidan publicerades tillbaka till servern.
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
Returer
Returnerar serverkontrollens aktuella tillstånd. Om det inte finns något tillstånd associerat med kontrollen returnerar nullden här metoden .
Exempel
I följande kodexempel åsidosätts metoden SaveControlState i en anpassad ASP.NET kontroll. När den här metoden anropas avgör den om den interna egenskapen currentIndex är inställd på ett värde som inte är standard och i så fall sparar värdet för att kontrollera tillståndet.
Metoden OnInit åsidosätts för att anropa RegisterRequiresControlState metoden på Page för att indikera att den anpassade kontrollen använder kontrolltillstånd.
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
Kommentarer
Använd metoden SaveControlState för att spara tillståndsinformation som krävs för driften av en specifik kontroll. Dessa kontrolltillståndsdata lagras separat från kontrollens visningstillståndsdata.
Anpassade kontroller som använder kontrolltillstånd måste anropa RegisterRequiresControlState metoden för innan kontrolltillståndet Page sparas.
Anteckningar till arvingar
När kontrolltillståndet sparas returneras ett strängobjekt till klienten som en variabel som lagras i ett HTML-element HIDDEN . Åsidosätt den här metoden för att extrahera tillståndsinformationen som ska användas i din kontroll.
Kontrolltillståndet är avsett för små mängder kritiska data, till exempel ett sidindex eller ett nyckelord. Användning av kontrolltillstånd för stora mängder data kan påverka sidprestanda negativt. Mer information finns i ASP.NET State Management Overview.