Page.RegisterRequiresControlState(Control) Metodo

Definizione

Registra un controllo in modo che il relativo stato del controllo debba essere mantenuto.

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

Parametri

control
Control

Controllo da registrare.

Eccezioni

Il controllo da registrare è null.

Il metodo RegisterRequiresControlState(Control) può essere chiamato solo prima o durante l'evento PreRender.

Esempio

Nell'esempio di codice seguente viene illustrato un controllo server personalizzato che chiama il RegisterRequiresControlState metodo .

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

Commenti

I controlli server personalizzati che usano lo stato del controllo devono chiamare il metodo in ogni richiesta perché la registrazione per lo RegisterRequiresControlState stato del controllo non viene eseguita dalla richiesta alla richiesta durante un evento postback. È consigliabile che la registrazione si verifichi nell'evento Init .

Si applica a

Vedi anche