다음을 통해 공유


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을 반환합니다.

예제

다음 예제에서는 사용자 지정 ASP.NET 서버 컨트롤에서 메서드를 재정 SaveViewState 의합니다. 이 메서드가 호출되면 컨트롤에 자식 컨트롤이 있는지 여부와 포함하는 Page 개체가 포스트백의 결과인지 여부를 결정합니다. 둘 다 true이면 웹 서버 컨트롤의 TextLabel 속성을 변경하여 를 읽습니다 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 요소입니다. 사용자 지정 뷰 상태를 사용하여 사용자 지정 서버 컨트롤을 작성할 때 뷰 상태는 및 LoadViewState 메서드를 사용하여 SaveViewState 명시적으로 관리할 수 있습니다. 자세한 내용은 ASP.NET 상태 관리 개요합니다. 사용자 지정 세션 상태 공급자를 구현하는 방법에 대한 자세한 내용은 Session-State 스토어 공급자 구현을 참조하세요.

적용 대상

추가 정보