PagesSection.AutoEventWireup Propriété

Définition

Obtient ou définit une valeur qui indique si les événements pour les pages ASP.NET sont connectés automatiquement aux fonctions de gestion des événements.

[System.Configuration.ConfigurationProperty("autoEventWireup", DefaultValue=true)]
public bool AutoEventWireup { get; set; }

Valeur de propriété

true si les événements pour les pages ASP.NET sont connectés automatiquement aux fonctions de gestion des événements ; sinon, false. La valeur par défaut est true.

Attributs

Exemples

L’exemple de code suivant montre comment définir ou lire la propriété dans le AutoEventWireup code.

// Get the current AutoEventWireup property value.
Console.WriteLine(
    "Current AutoEventWireup value: '{0}'",
    pagesSection.AutoEventWireup);

// Set the AutoEventWireup property to false.
pagesSection.AutoEventWireup = false;

L’exemple suivant montre les deux formes de signatures de méthode qui sont automatiquement attachées aux événements de page quand AutoEventWireup est true.

<%@ Page Language="C#" AutoEventWireup="false" CodeFile="Default.aspx.cs" Inherits="_Default" %>
// This method will be automatically bound to the Load event
// when AutoEventWireup is true.
protected void Page_Load(object sender, EventArgs e)
{
    Response.Write("Hello world");
}
// This method will be automatically bound to the Load event 
// when AutoEventWireup is true only if no overload having 
// object and EventArgs parameters is found.
protected void Page_Load()
{
    Response.Write("Hello world");
}

L’exemple suivant montre comment connecter explicitement des événements lorsque AutoEventWireup est false.

// Following are three alternative ways of binding an event
// handler to an event when AutoEventWireup is false.  For
// any given event do this binding only once or the handler
// will be called multiple times.

// You can wire up events in the page's constructor.
public _Default()
{
    Load += new EventHandler(Page_Load);
}

// You can override the OnInit event and wire up events there.
protected override void OnInit(EventArgs e)
{
    base.OnInit(e);
    Load += new EventHandler(Page_Load);
}

// Or you can override the event's OnEventname method and
// call your handler from there.  You can also put the code
// execute when the event fires within the override method itself.
protected override void OnLoad(EventArgs e)
{
    Page_Load(null, null);
    base.OnLoad(e);
}

protected void Page_Load(object sender, EventArgs e)
{
    Response.Write("Hello world");
}

Remarques

Quand AutoEventWireup est true, ASP.NET n’exige pas que vous liez explicitement des gestionnaires d’événements à un événement de page tel que Load.

Quand AutoEventWireup est false, vous devez lier explicitement l’événement à une méthode. Par exemple, si vous avez une Page_Load méthode dans le code d’une page, la méthode n’est appelée en réponse à l’événement que si vous écrivez du Load code comme celui-ci dans l’exemple suivant (notez l’instruction Handles en Visual Basic et le code du gestionnaire d’événements en C#) :

public partial class AutoEventWireupExample : System.Web.UI.Page
{
    protected void Page_Load(object sender, System.EventArgs e)
    {
        Response.Write("Executing Page_Load");
    }
    override protected void OnInit(EventArgs e)
    {
        this.Load += new System.EventHandler(this.Page_Load);
    }
}

Quand AutoEventWireup est true, les gestionnaires sont automatiquement liés aux événements au moment de l’exécution en fonction de leur nom et de leur signature. Pour chaque événement, ASP.NET recherche une méthode nommée en fonction du nom d’événement de modèlePage_, par Page_Load exemple ou Page_Init. ASP.NET recherche d’abord une surcharge qui a la signature classique du gestionnaire d’événements (c’est-à-dire, elle spécifie et EventArgs les Object paramètres). Si un gestionnaire d’événements avec cette signature est introuvable, ASP.NET recherche une surcharge qui n’a aucun paramètre.

Quand AutoEventWireup est false, vous devez lier explicitement des gestionnaires d’événements à des événements, comme indiqué dans l’exemple précédent. Dans ce cas, les noms de méthode n’ont pas besoin de suivre un modèle.

La valeur par défaut est true si AutoEventWireup n’est pas spécifié dans la @ Page directive. Visual Studio inclut automatiquement l’attribut lorsqu’il crée des fichiers code-behind. Pour ASP.NET pages écrites en C#, Visual Studio définit la valeur sur true. Pour Visual Basic, Visual Studio définit la valeur surfalse, car les gestionnaires sont liés aux événements à l’aide de handles mot clé, qui est inséré automatiquement par Visual Studio lorsqu’il génère un gestionnaire d’événements. Si vous définissez AutoEventWireup sur true, vous pouvez omettre (ou supprimer) les handles mot clé.

Ne définissez AutoEventWireup pas sur true si les performances sont une considération clé. Lorsque le wireup automatique d’événements est activé, ASP.NET doit effectuer entre 15 et 30 tentatives de correspondance d’événements avec des méthodes.

Notez les éléments suivants concernant la liaison de gestionnaires d’événements à des événements :

  • Si vous définissez AutoEventWireup sur true, assurez-vous que vous n’attachez pas également manuellement des gestionnaires d’événements de page aux événements. Si vous le faites, les gestionnaires peuvent être appelés plusieurs fois.

  • La liaison automatique est effectuée uniquement pour les événements de page, et non pour les événements pour les contrôles de la page.

  • En guise d’alternative à la liaison d’événements à des gestionnaires, vous pouvez remplacer les On méthodes eventname de la page ou des contrôles.

S’applique à

Produit Versions
.NET Framework 2.0, 3.0, 3.5, 4.0, 4.5, 4.5.1, 4.5.2, 4.6, 4.6.1, 4.6.2, 4.7, 4.7.1, 4.7.2, 4.8, 4.8.1