Control.SaveControlState Metoda
Definicja
Ważne
Niektóre informacje odnoszą się do produktu w wersji wstępnej, który może zostać znacząco zmodyfikowany przed wydaniem. Firma Microsoft nie udziela żadnych gwarancji, jawnych lub domniemanych, w odniesieniu do informacji podanych w tym miejscu.
Zapisuje wszelkie zmiany stanu kontroli serwera, które wystąpiły od czasu opublikowania strony z powrotem na serwerze.
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
Zwraca
Zwraca bieżący stan kontrolki serwera. Jeśli nie ma stanu skojarzonego z kontrolką, ta metoda zwraca wartość null
.
Przykłady
Poniższy przykład kodu zastępuje metodę SaveControlState w niestandardowej kontrolce ASP.NET. Po wywołaniu tej metody określa, czy właściwość currentIndex
wewnętrzna jest ustawiona na wartość inną niż domyślna, a jeśli tak, zapisuje wartość w celu kontrolowania stanu.
Metoda OnInit jest zastępowana, aby wywołać metodę RegisterRequiresControlState na obiekcie , Page aby wskazać, że kontrolka niestandardowa używa stanu kontrolki.
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
Uwagi
SaveControlState Użyj metody , aby zapisać informacje o stanie wymagane do działania określonej kontrolki. Te dane stanu kontroli są przechowywane oddzielnie od danych stanu widoku kontrolki.
Kontrolki niestandardowe używające stanu kontrolki muszą wywoływać metodę RegisterRequiresControlState przed Page zapisaniem stanu kontrolki.
Uwagi dotyczące dziedziczenia
Po zapisaniu stanu kontrolki obiekt ciągu jest zwracany do klienta jako zmienna przechowywana w elemecie HTML HIDDEN
. Zastąpij tę metodę, aby wyodrębnić informacje o stanie do użycia w kontrolce.
Stan kontroli jest przeznaczony dla małych ilości danych krytycznych, takich jak indeks strony lub słowo kluczowe. Używanie stanu kontroli dla dużych ilości danych może negatywnie wpłynąć na wydajność strony. Aby uzyskać więcej informacji, zobacz ASP.NET State Management Overview (Omówienie zarządzania stanami ASP.NET).