Control.SaveControlState Method

Saves any server control state changes that have occurred since the time the page was posted back to the server.

Namespace: System.Web.UI
Assembly: System.Web (in system.web.dll)

Protected Friend Overridable Function SaveControlState As Object
Dim returnValue As Object

returnValue = Me.SaveControlState
protected Object SaveControlState ()
protected internal function SaveControlState () : Object
Not applicable.

Return Value

Returns the server control's current state. If there is no state associated with the control, this method returns a null reference (Nothing in Visual Basic).

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.

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.

Class Sample
  Inherits Control
  Dim currentIndex As Integer
  Overloads Sub OnInit(ByVal e As EventArgs)
    currentIndex = 0
  End Sub
  Overloads Function SaveControlState() As Object
    If currentIndex <> 0 Then
      Return CType(currentIndex, Object)
      Return Nothing
    End If
  End Function
  Overloads Sub LoadControlState(ByVal state As Object)
    If (state <> Nothing) Then
      currentIndex = CType(state, Integer)
    End If
  End Sub
End Class

Windows 98, Windows Server 2000 SP4, Windows Server 2003, Windows XP Media Center Edition, Windows XP Professional x64 Edition, Windows XP SP2, Windows XP Starter Edition

The Microsoft .NET Framework 3.0 is supported on Windows Vista, Microsoft Windows XP SP2, and Windows Server 2003 SP1.

.NET Framework

Supported in: 3.0, 2.0

Community Additions