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 Общие сведения об управлении состоянием.