Control.SaveControlState Метод

Определение

Сохраняет все изменения состояния управления сервером, которые произошли с момента публикации страницы на сервер.

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

Возвращаемое значение

Возвращает текущее состояние элемента управления сервера. Если с элементом управления нет состояния, возвращается этот метод null.

Примеры

В следующем примере кода переопределяется метод SaveControlState в пользовательском элементе управления ASP.NET. При вызове этого метода определяется, задано ли внутреннее свойство currentIndex значением, не используемым по умолчанию, и, если да, сохраняет значение для управления состоянием.

Метод OnInit переопределяется для вызова RegisterRequiresControlState метода, Page указывающего, что пользовательский элемент управления использует состояние элемента управления.

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

Пользовательские элементы управления, использующие состояние элемента управления, должны вызывать RegisterRequiresControlState метод перед сохранением Page состояния элемента управления.

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

При сохранении состояния элемента управления строковый объект возвращается клиенту в виде переменной, хранящейся в HTML-элементе HIDDEN . Переопределите этот метод, чтобы извлечь сведения о состоянии для использования в элементе управления.

Состояние управления предназначено для небольших объемов критически важных данных, таких как индекс страницы или ключевое слово. Использование состояния управления для больших объемов данных может негативно повлиять на производительность страницы. Дополнительные сведения см. в ASP.NET обзоре управления состояниями.

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

См. также раздел