Capture d'événements de publication
Pour qu'un contrôle capture un événement de publication, il doit implémenter l'interface System.Web.UI.IPostBackEventHandler. Le contrat de cette interface permet à un contrôle de déclencher des événements sur le serveur en réponse à la publication à partir du client. L'interface IPostBackEventHandler contient une méthode.
public interface IPostBackEventHandler{
void RaisePostBackEvent(string eventArgument);
}
[Visual Basic]
Public Interface IPostBackEventHandler
Sub RaisePostBackEvent(eventArgument As String)
End Interface
Lors de la publication, l'infrastructure de la page parcourt le contenu publié et détermine si un nom publié correspond à l'UniqueID d'un contrôle serveur implémentant IPostBackEventHandler. Dans ce cas, il appelle la méthode RaisePostBackEvent sur ce contrôle (après avoir déclenché des événements de modification).
Le fragment de code suivant illustre une implémentation de RaisePostBackEvent qui déclenche un événement Click
sur le serveur.
public void RaisePostBackEvent(String eventArgument){
OnClick(EventArgs.Empty);
}
[Visual Basic]
Public Overridable Sub RaisePostDataChangedEvent() Implements IPostBackDataHandler.RaisePostDataChangedEvent
OnTextChanged(EventArgs.Empty)
End Sub
Remarque Il est essentiel que la logique de rendu assigne UniqueID à l'attribut de nom du contrôle, comme dans l'exemple suivant. L'infrastructure de page est incapable d'acheminer une publication vers votre contrôle si son attribut de nom sur le client ne correspond pas à son UniqueID.
protected override void Render(HtmlTextWriter output) {
output.Write("<INPUT TYPE=submit name=" + this.UniqueID +
" Value='Click Me' />");
}
[Visual Basic]
Protected Overrides Sub Render(output As HtmlTextWriter)
output.Write("<INPUT type=submit name=" & Me.UniqueID & _
" Value='Click Me' />")
End Sub
Pour obtenir un exemple de contrôle qui reçoit des notifications de publication et déclenche des événements sur le serveur, consultez Exemple d'événement de publication.