Page.RegisterRequiresControlState(Control) 메서드

정의

등록 컨트롤을 컨트롤 상태가 유지 되어야 합니다.Registers a control as one whose control state must be persisted.

public:
 void RegisterRequiresControlState(System::Web::UI::Control ^ control);
public void RegisterRequiresControlState (System.Web.UI.Control control);
member this.RegisterRequiresControlState : System.Web.UI.Control -> unit

매개 변수

control
Control

등록할 컨트롤입니다.The control to register.

예외

등록할 컨트롤이 null인 경우The control to register is null.

RegisterRequiresControlState(Control) 이벤트가 수행되는 동안이나 수행되기 전에만 PreRender 메서드를 호출할 수 있는 경우The RegisterRequiresControlState(Control) method can be called only before or during the PreRender event.

예제

다음 코드 예제에서는 RegisterRequiresControlState 메서드를 호출 하는 사용자 지정 서버 컨트롤을 보여 줍니다.The following code example shows a custom server control calling the RegisterRequiresControlState method.

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

설명

컨트롤 상태를 사용 하는 사용자 지정 서버 컨트롤은 각 요청에서 RegisterRequiresControlState 메서드를 호출 해야 합니다. 컨트롤 상태에 대 한 등록이 포스트백 이벤트 중 요청에서 요청으로 전달 되지 않기 때문입니다.Custom server controls that use control state must call the RegisterRequiresControlState method on each request because registration for control state is not carried over from request to request during a postback event. Init 이벤트에서 등록을 수행 하는 것이 좋습니다.It is recommended that registration occur in the Init event.

적용 대상

추가 정보