Control.SaveControlState Control.SaveControlState Control.SaveControlState Control.SaveControlState Method

Определение

Сохраняет любые изменения состояния серверного элемента управления, произошедшие после отправки страницы обратно на сервер.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 the server control's current state. Если нет состояния, связанного с этим элементом управления, этот метод возвращает null.If there is no state associated with the control, this method returns null.

Примеры

В следующем примере кода SaveControlState метод переопределяется в пользовательском элементе управления ASP.NET.The following code example overrides the SaveControlState method in a custom ASP.NET control. При вызове этого метода он определяет, задано ли для внутреннего currentIndex свойства значение, отличное от значения по умолчанию, и, если да, сохраняет значение в состоянии управления.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.

Метод переопределяется для RegisterRequiresControlState вызова метода Page в для указания того, что пользовательский элемент управления использует состояние элемента управления. OnInitThe 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

Комментарии

SaveControlState Используйте метод для сохранения сведений о состоянии, необходимых для операции определенного элемента управления.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.

Пользовательские элементы управления, использующие состояние элемента управления RegisterRequiresControlState , Page должны вызывать метод в перед сохранением состояния элемента управления.Custom controls using control state must call the RegisterRequiresControlState method on the Page before saving control state.

Примечания для тех, кто наследует этот метод

При сохранении состояния элемента управления строковый объект возвращается клиенту в виде переменной, хранящейся в HTML- HIDDEN элементе.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. Дополнительные сведения см. в разделе Обзор управления состоянием ASP.NET.For more information, see ASP.NET State Management Overview.

Применяется к

Дополнительно