Control.SaveControlState Metódus
Definíció
Fontos
Egyes információk olyan, kiadás előtti termékekre vonatkoznak, amelyek a kiadásig még jelentősen módosulhatnak. A Microsoft nem vállal kifejezett vagy törvényi garanciát az itt megjelenő információért.
Menti azokat a kiszolgálóvezérlő-állapotváltozásokat, amelyek a lap kiszolgálóra való visszatérése óta történtek.
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
Válaszok
A kiszolgálóvezérlő aktuális állapotát adja vissza. Ha nincs állapot társítva a vezérlőelemhez, ez a metódus ad vissza null.
Példák
Az alábbi példakód felülírja a SaveControlState metódust egy egyéni ASP.NET vezérlőelemben. A metódus meghívásakor meghatározza, hogy a belső tulajdonság currentIndex nem alapértelmezett értékre van-e beállítva, és ha igen, menti az értéket az állapot szabályozásához.
A OnInit metódus felül van bírálva, hogy meghívja a RegisterRequiresControlState metódust a Page vezérlőn annak jelzésére, hogy az egyéni vezérlő vezérlőállapotot használ.
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
Megjegyzések
Ezzel a SaveControlState módszerrel mentheti az adott vezérlő működéséhez szükséges állapotadatokat. Ezeket a vezérlőállapot-adatokat a rendszer a vezérlő nézetállapot-adataitól elkülönítve tárolja.
A vezérlőállapotot használó egyéni vezérlőknek meg kell hívniuk a RegisterRequiresControlState metódust a Page vezérlőállapot mentése előtt.
Megjegyzések az öröklőkhöz
A vezérlőállapot mentésekor a rendszer egy HTML-elemben HIDDEN tárolt változóként visszaad egy sztringobjektumot az ügyfélnek. A metódus felülbírálása a vezérlőben használandó állapotinformációk kinyeréséhez.
A vezérlőállapot kis mennyiségű kritikus adathoz, például oldalindexhez vagy kulcsszóhoz használható. A nagy mennyiségű adat vezérlési állapotának használata hátrányosan befolyásolhatja az oldal teljesítményét. További információ: ASP.NET Állapotkezelés áttekintése.