Page.RegisterRequiresControlState(Control) Page.RegisterRequiresControlState(Control) Page.RegisterRequiresControlState(Control) Method

定義

特定のコントロールを、コントロールの状態を維持する必要があるコントロールとして登録します。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 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.

適用対象

こちらもご覧ください