Control.SaveControlState Método
Definición
Importante
Parte de la información hace referencia a la versión preliminar del producto, que puede haberse modificado sustancialmente antes de lanzar la versión definitiva. Microsoft no otorga ninguna garantía, explícita o implícita, con respecto a la información proporcionada aquí.
Guarda los cambios de estado del control de servidor que se produjeron desde la hora en que la página volvió a publicarse en el servidor.
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
Devoluciones
Devuelve el estado actual del control de servidor. Si no hay ningún estado asociado al control, este método devuelve null
.
Ejemplos
En el ejemplo de código siguiente se invalida el SaveControlState método en un control de ASP.NET personalizado. Cuando se invoca este método, determina si la propiedad currentIndex
interna se establece en un valor no predeterminado y, si es así, guarda el valor para controlar el estado.
El OnInit método se invalida para llamar al RegisterRequiresControlState método en Page para indicar que el control personalizado usa el estado de control.
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
Comentarios
Use el método para guardar la SaveControlState información de estado necesaria para el funcionamiento de un control específico. Estos datos de estado de control se almacenan de forma independiente de los datos de estado de vista del control.
Los controles personalizados que usan el estado de control deben llamar al RegisterRequiresControlState método en antes de guardar el estado del Page control.
Notas a los desarrolladores de herederos
Cuando se guarda el estado del control, se devuelve un objeto de cadena al cliente como una variable que se almacena en un elemento HTML HIDDEN
. Invalide este método para extraer la información de estado que se va a usar en el control.
El estado de control está pensado para pequeñas cantidades de datos críticos, como un índice de página o una palabra clave. El uso del estado de control para grandes cantidades de datos puede afectar negativamente al rendimiento de la página. Para obtener más información, consulte ASP.NET State Management Overview.