Cet article a fait l’objet d’une traduction automatique. Pour afficher l’article en anglais, activez la case d’option Anglais. Vous pouvez également afficher le texte anglais dans une fenêtre contextuelle en faisant glisser le pointeur de la souris sur le texte traduit.
Traduction
Anglais

ObjectDataSourceDisposingEventArgs classe

 

Date de publication : novembre 2016

Fournit des données pour le ObjectDisposing événements du ObjectDataSource contrôle.

Espace de noms:   System.Web.UI.WebControls
Assembly:  System.Web (dans System.Web.dll)

System.Object
  System.EventArgs
    System.ComponentModel.CancelEventArgs
      System.Web.UI.WebControls.ObjectDataSourceDisposingEventArgs

public class ObjectDataSourceDisposingEventArgs : CancelEventArgs

NomDescription
System_CAPS_pubmethodObjectDataSourceDisposingEventArgs(Object)

Initialise une nouvelle instance de la ObjectDataSourceDisposingEventArgs classe à l’aide de l’objet spécifié.

NomDescription
System_CAPS_pubpropertyCancel

Obtient ou définit une valeur indiquant si l’événement doit être annulé.(Hérité de CancelEventArgs.)

System_CAPS_pubpropertyObjectInstance

Obtient un objet qui représente l’objet métier avec lequel le ObjectDataSource contrôle effectue des opérations de données.

NomDescription
System_CAPS_pubmethodEquals(Object)

Détermine si l'objet spécifié est identique à l'objet actuel.(Hérité de Object.)

System_CAPS_protmethodFinalize()

Autorise un objet à tenter de libérer des ressources et d'exécuter d'autres opérations de nettoyage avant qu'il ne soit récupéré par l'opération garbage collection. (Hérité de Object.)

System_CAPS_pubmethodGetHashCode()

Fait office de fonction de hachage par défaut.(Hérité de Object.)

System_CAPS_pubmethodGetType()

Obtient le Type de l'instance actuelle.(Hérité de Object.)

System_CAPS_protmethodMemberwiseClone()

Crée une copie superficielle du Object actuel.(Hérité de Object.)

System_CAPS_pubmethodToString()

Retourne une chaîne qui représente l'objet actuel.(Hérité de Object.)

La ObjectDataSourceDisposingEventArgs classe est utilisée dans la OnObjectDisposing méthode pour fournir l’accès à l’instance d’objet métier après toute opération de données qui utilisée la ObjectDataSource contrôle et l’objet métier sont effectuées, mais avant de l’entreprise est détruit. L’objet métier est accessible à l’aide de la ObjectInstance propriété. En ajoutant un délégué pour gérer les ObjectDisposing événement, vous pouvez accéder à tous les membres exposés publiquement de l’objet métier pour exécuter tout travail finale ou nettoyer.

Le OnObjectDisposing méthode n’est pas appelée par le ObjectDataSource contrôler, si la méthode qui effectue des opérations de données est un static (méthode). Aucune instance d’objet métier n’est créé lorsque la méthode est statique.

Le ObjectDataSource contrôle expose plusieurs événements que vous pouvez gérer pour travailler avec l’objet métier sous-jacent à divers stades de son cycle de vie. Le tableau suivant répertorie les événements et associé EventArgs classes et délégués de gestionnaires d’événements.

event

EventArgs

EventHandler

ObjectCreating.

Se produit immédiatement avant la création de l’instance de l’objet métier.

ObjectDataSourceEventArgs

ObjectDataSourceObjectEventHandler

ObjectCreated.

Se produit immédiatement après la création de l’instance de l’objet métier.

ObjectDataSourceEventArgs

ObjectDataSourceObjectEventHandler

Selecting.

Se produit avant que les données sont récupérées.

ObjectDataSourceSelectingEventArgs

ObjectDataSourceSelectingEventHandler

Inserting, Updating et Deleting.

Se produit avant une opération d’insertion, mise à jour ou suppression est effectuée.

ObjectDataSourceMethodEventArgs

ObjectDataSourceMethodEventHandler

Selected

Se produit après que les données sont récupérées.

ObjectDataSourceStatusEventArgs

ObjectDataSourceStatusEventHandler

Inserted, Updated et Deleted.

Se produit après l’insertion, mise à jour ou suppression est terminée.

ObjectDataSourceStatusEventArgs

ObjectDataSourceStatusEventHandler

ObjectDisposing.

Se produit avant la destruction d’un objet métier.

ObjectDataSourceDisposingEventArgs

ObjectDataSourceDisposingEventHandler

Cette section contient deux exemples de code. Le premier exemple de code montre comment utiliser un ObjectDataSource contrôle avec un objet métier et un GridView contrôle pour afficher des informations. Le deuxième exemple de code fournit l’exemple d’objet métier de couche intermédiaire qui utilise le premier exemple de code.

L’exemple de code suivant montre comment utiliser un ObjectDataSource contrôle avec un objet métier et un GridView contrôle pour afficher des informations. Vous pouvez travailler avec un objet métier qui est très coûteux (en termes de temps ou de ressources) à créer pour chaque opération de données effectuée par votre page Web. Une façon de travailler avec un objet coûteux peut-être pour créer une instance de celle-ci et mettez ensuite en cache pour les opérations ultérieures au lieu de créer et détruire à chaque opération de données. Cet exemple illustre ce modèle. Vous pouvez gérer les ObjectCreating événements pour rechercher tout d’abord dans le cache pour un objet, puis créer une instance, seulement s’y ne trouve pas déjà. Gérez ensuite le ObjectDisposing événement pour mettre en cache l’objet métier pour une utilisation ultérieure au lieu de sa destruction. Dans cet exemple, le CancelEventArgs.Cancel propriété de le ObjectDataSourceDisposingEventArgs a l’objet true, pour indiquer le ObjectDataSource à ne pas appeler la Dispose méthode sur l’instance.

<%@ Import namespace="Samples.AspNet.CS" %>
<%@ Page language="c#" %>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
    "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<script runat="server">

// Instead of creating and destroying the business object each time, the 
// business object is cached in the ASP.NET Cache.
private void GetEmployeeLogic(object sender, ObjectDataSourceEventArgs e)
{
    // First check to see if an instance of this object already exists in the Cache.
    EmployeeLogic cachedLogic;

    cachedLogic = Cache["ExpensiveEmployeeLogicObject"] as EmployeeLogic;

    if (null == cachedLogic) {
            cachedLogic = new EmployeeLogic();            
    }

    e.ObjectInstance = cachedLogic;     
}

private void ReturnEmployeeLogic(object sender, ObjectDataSourceDisposingEventArgs e)
{    
    // Get the instance of the business object that the ObjectDataSource is working with.
    EmployeeLogic cachedLogic = e.ObjectInstance as EmployeeLogic;        

    // Test to determine whether the object already exists in the cache.
    EmployeeLogic temp = Cache["ExpensiveEmployeeLogicObject"] as EmployeeLogic;

    if (null == temp) {
        // If it does not yet exist in the Cache, add it.
        Cache.Insert("ExpensiveEmployeeLogicObject", cachedLogic);
    }

    // Cancel the event, so that the object will 
    // not be Disposed if it implements IDisposable.
    e.Cancel = true;
}
</script>

<html xmlns="http://www.w3.org/1999/xhtml" >
  <head>
    <title>ObjectDataSource - C# Example</title>
  </head>
  <body>
    <form id="Form1" method="post" runat="server">

        <asp:gridview
          id="GridView1"
          runat="server"          
          datasourceid="ObjectDataSource1">
        </asp:gridview>

        <asp:objectdatasource 
          id="ObjectDataSource1"
          runat="server"          
          selectmethod="GetCreateTime"          
          typename="Samples.AspNet.CS.EmployeeLogic"
          onobjectcreating="GetEmployeeLogic"
          onobjectdisposing="ReturnEmployeeLogic" >
        </asp:objectdatasource>        

    </form>
  </body>
</html>

L’exemple de code suivant fournit un exemple d’objet métier de couche intermédiaire qui utilise l’exemple de code précédent. L’exemple de code se compose d’un objet métier de base défini par le EmployeeLogic (classe), qui est une classe qui gère l’état et encapsule la logique métier. Pour obtenir un exemple complet, vous devez compiler ce code comme une bibliothèque et ensuite utiliser ces classes à partir d’une page ASP.

namespace Samples.AspNet.CS {

using System;
using System.Collections;
using System.Web.UI;
using System.Web.UI.WebControls;
  //
  // EmployeeLogic is a stateless business object that encapsulates
  // the operations you can perform on a NorthwindEmployee object.
  //
  public class EmployeeLogic {

    public EmployeeLogic () : this(DateTime.Now) {        
    }

    public EmployeeLogic (DateTime creationTime) { 
        _creationTime = creationTime;
    }

    private DateTime _creationTime;

    // Returns a collection of NorthwindEmployee objects.
    public ICollection GetCreateTime () {
      ArrayList al = new ArrayList();

      // Returns creation time for this example.      
      al.Add("The business object that you are using was created at " + _creationTime);

      return al;
    }
  }
}

.NET Framework
Disponible depuis 2.0

Tous les membres statiques publics ( Shared en Visual Basic) de ce type sont thread-safe. Les membres d’instance n’ont pas la garantie d’être thread-safe.

Retour au début
Afficher: