Comment : implémenter des rappels dans des pages Web ASP.NET

Mise à jour : novembre 2007

Dans un rappel client, une fonction de script client envoie une demande à la page Web ASP.NET, qui exécute ensuite une version abrégée de son cycle de vie normal pour traiter le rappel. Pour garantir que les événements de rappel proviennent de l'interface utilisateur attendue, vous pouvez valider les rappels. Lors de la validation des rappels, vous enregistrez un événement pour validation pendant le rendu de la page Web, puis validez l'événement pendant le rappel. Pour obtenir une vue d'ensemble des rappels, consultez Implémentation par programme des rappels clients sans publication (postback) dans des pages Web ASP.NET.

Pour implémenter l'interface ICallBackEventHandler

  1. Pour une page à fichier unique ou un contrôle utilisateur, implémentez l'interface ICallbackEventHandler à l'aide d'une directive @ Implements dans la page, comme illustré dans l'exemple suivant.

    <%@ Page Language="VB" %>
    <%@ Implements Interface="System.Web.UI.ICallbackEventHandler" %>
    
    <%@ Page Language="C#" %>
    <%@ Implements Interface="System.Web.UI.ICallbackEventHandler" %>
    
    Remarque :

    Si vous utilisez un modèle de page code-behind, implémentez l'interface ICallbackEventHandler pour votre classe partielle.

  2. Implémentez la méthode RaiseCallbackEvent de l'interface ICallbackEventHandler. La méthode RaiseCallbackEvent prend un argument unique qui représente les arguments d'événement, comme illustré dans l'exemple suivant.

    Public Sub RaiseCallbackEvent(ByVal eventArgument As String) _
    Implements System.Web.UI.ICallbackEventHandler.RaiseCallbackEvent
    
    End Sub
    
    public void RaiseCallbackEvent(String eventArgument)
    {
    
    }
    
  3. Implémentez la méthode GetCallbackResult de l'interface ICallbackEventHandler. La méthode GetCallbackResult ne prend pas d'arguments et retourne une chaîne qui représente le résultat du rappel. Dans l'exemple suivant, une chaîne appelée returnValue est retournée.

    Public Function GetCallbackResult() _
    As String Implements _
    System.Web.UI.ICallbackEventHandler.GetCallbackResult
    
        Return returnValue
    
    End Function
    
    public String GetCallbackResult()
    {
        return returnValue;
    }
    

Pour enregistrer le rappel pour la validation d'événement

  • Substituez la méthode Render de la classe Page et utilisez la méthode RegisterForEventValidation de la classe ClientScriptManager pour enregistrer un événement pour la validation. Vous pouvez obtenir une référence à la classe ClientScriptManager en utilisant la propriété ClientScript de la classe Page. Dans l'exemple suivant, un rappel nommé Callback1 est enregistré pour la validation d'événement.

    Protected Overrides Sub Render(ByVal writer As System.Web.UI.HtmlTextWriter)
    
        Page.ClientScript.RegisterForEventValidation("ClientCallback1")
        MyBase.Render(writer)
    
    End Sub
    
    protected override void Render(HtmlTextWriter writer)
    {
        Page.ClientScript.RegisterForEventValidation("ClientCallback1");
        base.Render(writer);
    }
    

Pour valider le rappel et retourner le résultat du rappel

  • Dans la méthode RaiseCallbackEvent, utilisez la méthode ValidateEvent de la classe ClientScriptManager pour valider l'événement. Utilisez la même signature de méthode que celle utilisée lors de l'enregistrement de l'événement pour validation. Dans l'exemple suivant, la signature de méthode qui prend un argument est utilisée.

    Public Sub RaiseCallbackEvent(ByVal eventArgument As String) _
    Implements System.Web.UI.ICallbackEventHandler.RaiseCallbackEvent
        Try
            Page.ClientScript.ValidateEvent("ClientCallback1")
            ' Callback logic goes here.
            returnValue = "callback result"
    
        Catch
            ' Failed callback validation logic.
        End Try
    
    End Sub
    
    public void RaiseCallbackEvent(String eventArgument)
    {
        try
        {
            Page.ClientScript.ValidateEvent("ClientCallback1");
            // Callback logic goes here.
            returnValue = "callback result";
        }
        catch
        {
            // Failed callback validation logic.
        } 
    }
    

    Si la validation est réussie, votre code doit continuer avec la logique d'événement de rappel. Après l'exécution de la méthode RaiseCallbackEvent, la méthode GetCallbackResult est appelée pour retourner le résultat de rappel sous forme de chaîne vers une fonction de script client.

    Pour plus d'informations sur la création et l'implémentation des fonctions de script client pour prendre en charge des rappels clients, consultez Implémentation par programme des rappels clients sans publication (postback) dans des pages Web ASP.NET et Rappel client avec implémentation de la validation, exemple.

Voir aussi

Concepts

Implémentation par programme des rappels clients sans publication (postback) dans des pages Web ASP.NET

Rappel client avec implémentation de la validation, exemple