Control.SaveControlState Method
Definition
Important
Some information relates to prerelease product that may be substantially modified before it’s released. Microsoft makes no warranties, express or implied, with respect to the information provided here.
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
Returns
Returns the server control's current state. If there is no state associated with the control, this method returns null
.
Examples
The following code example overrides the SaveControlState method in a custom ASP.NET control. 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.
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
Remarks
Use the SaveControlState method to save state information required for the operation of a specific control. This control-state data is stored separately from the control's view-state data.
Custom controls using control state must call the RegisterRequiresControlState method on the Page before saving control state.
Notes to Inheritors
When control state is saved, a string object is returned to the client as a variable that is stored in an HTML HIDDEN
element. Override this method to extract the state information to use in your control.
Control state is intended for small amounts of critical data, such as a page index or a keyword. Using control state for large amounts of data can adversely affect page performance. For more information, see ASP.NET State Management Overview.