Control.SaveViewState Метод
Определение
Важно!
Некоторые сведения относятся к предварительной версии продукта, в которую до выпуска могут быть внесены существенные изменения. Майкрософт не предоставляет никаких гарантий, явных или подразумеваемых, относительно приведенных здесь сведений.
Сохраняет любые изменения состояния просмотра серверного элемента управления, произошедшие после отправки страницы обратно на сервер.
protected:
virtual System::Object ^ SaveViewState();
protected virtual object SaveViewState ();
abstract member SaveViewState : unit -> obj
override this.SaveViewState : unit -> obj
Protected Overridable Function SaveViewState () As Object
Возвращаемое значение
Возвращает текущее состояние просмотра серверного элемента управления. Если нет состояния просмотра, связанного с этим элементом управления, этот метод возвращает null
.
Примеры
В следующем примере метод переопределяется в пользовательском SaveViewState серверном элементе управления ASP.NET. При вызове этого метода он определяет, содержит ли элемент управления дочерние элементы управления и является ли содержащий Page объект результатом обратной передачи. Если оба значения имеют значение true, свойство серверного Label веб-элемента управления изменяется Text на чтение Custom Control Has Saved State
. Затем он сохраняет состояние представления элемента управления в виде массива объектов с именем allStates
.
protected override object SaveViewState()
{ // Change Text Property of Label when this function is invoked.
if(HasControls() && (Page.IsPostBack))
{
((Label)(Controls[0])).Text = "Custom Control Has Saved State";
}
// Save State as a cumulative array of objects.
object baseState = base.SaveViewState();
string userText = UserText;
string passwordText = PasswordText;
object[] allStates = new object[3];
allStates[0] = baseState;
allStates[1] = userText;
allStates[2] = PasswordText;
return allStates;
}
Protected Overrides Function SaveViewState() As Object
' Change Text Property of Label when this function is invoked.
If HasControls() And Page.IsPostBack Then
CType(Controls(0), Label).Text = "Custom Control Has Saved State"
End If
' Save State as a cumulative array of objects.
Dim baseState As Object = MyBase.SaveViewState()
Dim _userText As String = UserText
Dim _passwordText As String = PasswordText
Dim allStates(3) As Object
allStates(0) = baseState
allStates(1) = _userText
allStates(2) = PasswordText
Return allStates
End Function
Комментарии
Состояние представления — это накопление значений свойств серверного элемента управления. Эти значения автоматически помещаются в свойство серверного ViewState элемента управления, которое является экземпляром StateBag класса . Затем значение этого свойства сохраняется в строковом объекте после этапа сохранения состояния жизненного цикла серверного элемента управления. Дополнительные сведения см. в разделе Обзор жизненного цикла страницы ASP.NET.
При сохранении состояния представления этот строковый объект возвращается клиенту в виде переменной, хранящейся в элементе HTML HIDDEN
. При создании пользовательского серверного элемента управления с пользовательским состоянием представления состоянием представления можно явно управлять с помощью SaveViewState методов и LoadViewState . Дополнительные сведения см. в статье Общие сведения об управлении состоянием ASP.NET. Сведения о реализации настраиваемого поставщика состояния сеанса см. в разделе Реализация поставщика хранилища Session-State.