다음을 통해 공유


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

예제

다음 코드 예제는 사용자 지정 ASP.NET 컨트롤에서 메서드를 재정 SaveControlState 의합니다. 이 메서드가 호출되면 내부 속성 currentIndex 이 기본값이 아닌 값으로 설정되어 있는지 여부를 확인하고, 이 경우 값을 저장하여 상태를 제어합니다.

메서드는 OnInit 사용자 지정 컨트롤이 컨트롤 상태를 사용함을 나타내기 위해 에서 Page 메서드를 호출 RegisterRequiresControlState 하도록 재정의됩니다.

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 사용하여 특정 컨트롤의 작업에 필요한 상태 정보를 저장합니다. 이 컨트롤 상태 데이터는 컨트롤의 뷰 상태 데이터와 별도로 저장됩니다.

컨트롤 상태를 사용하는 사용자 지정 컨트롤은 컨트롤 상태를 저장하기 전에 에서 메서드를 Page 호출 RegisterRequiresControlState 해야 합니다.

상속자 참고

컨트롤 상태를 저장하면 문자열 개체가 HTML HIDDEN 요소에 저장된 변수로 클라이언트에 반환됩니다. 컨트롤에서 사용할 상태 정보를 추출하려면 이 메서드를 재정의합니다.

컨트롤 상태는 적은 양의 페이지 인덱스 또는 키워드와 같은 중요 한 데이터를 위한 것입니다. 컨트롤 상태를 사용 하 여 많은 양의 데이터에 대 한 페이지 성능이 저하 될 수 있습니다. 자세한 내용은 ASP.NET 상태 관리 개요합니다.

적용 대상

추가 정보