Control.SaveControlState Método
Definição
Importante
Algumas informações se referem a produtos de pré-lançamento que podem ser substancialmente modificados antes do lançamento. A Microsoft não oferece garantias, expressas ou implícitas, das informações aqui fornecidas.
Salva as alterações de estado do controle de servidor que ocorreram desde a hora em que ocorreu o postback da página no 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
Retornos
Retorna o estado atual do controle de servidor. Se não houver nenhum estado associado ao controle, esse método retornará null
.
Exemplos
O exemplo de código a seguir substitui o SaveControlState método em um controle de ASP.NET personalizado. Quando esse método é invocado, ele determina se a propriedade currentIndex
interna está definida como um valor não padrão e, nesse caso, salva o valor para controlar o estado.
O OnInit método é substituído para chamar o RegisterRequiresControlState método no Page para indicar que o controle personalizado usa o estado de controle.
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
Comentários
Use o SaveControlState método para salvar as informações de estado necessárias para a operação de um controle específico. Esses dados de estado de controle são armazenados separadamente dos dados de estado de exibição do controle.
Controles personalizados que usam o estado de controle devem chamar o RegisterRequiresControlState método no antes de salvar o Page estado do controle.
Notas aos Herdeiros
Quando o estado do controle é salvo, um objeto de cadeia de caracteres é retornado ao cliente como uma variável armazenada em um elemento HTML HIDDEN
. Substitua esse método para extrair as informações de estado a serem usadas em seu controle.
O estado de controle destina-se a pequenas quantidades de dados críticos, como um índice de página ou uma palavra-chave. Usar o estado de controle para grandes quantidades de dados pode afetar negativamente o desempenho da página. Para obter mais informações, consulte Visão geral do Gerenciamento de Estado do ASP.NET.