Cette documentation est archivée et n’est pas conservée.

ObjectDataSourceStatusEventHandler, délégué

Remarque : ce délégué est nouveau dans le .NET Framework version 2.0.

Représente la méthode qui gérera les événements Selected, Updated, Inserted, et Deleted du contrôle ObjectDataSource.

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

public delegate void ObjectDataSourceStatusEventHandler (
	Object sender,
	ObjectDataSourceStatusEventArgs e
)
/** @delegate */
public delegate void ObjectDataSourceStatusEventHandler (
	Object sender, 
	ObjectDataSourceStatusEventArgs e
)
JScript prend en charge l'utilisation de délégués mais pas la déclaration de nouveaux délégués.

Paramètres

sender

Source de l'événement, le contrôle ObjectDataSource.

e

ObjectDataSourceStatusEventArgs qui contient les données d'événement.

Lorsque vous créez un délégué ObjectDataSourceStatusEventHandler, vous identifiez la méthode qui gérera l'événement. Pour associer l'événement au gestionnaire d'événements, ajoutez une instance du délégué à l'événement. Le gestionnaire d'événements est appelé chaque fois qu'un événement se produit, sauf si vous supprimez le délégué. Pour plus d'informations sur les délégués de gestionnaires d'événements, consultez Consommation d'événements.

L'exemple de code suivant illustre comment utiliser un contrôle ObjectDataSource avec un objet métier et un contrôle GridView pour supprimer des données. GridView affiche initialement un jeu de tous les employés à l'aide de la méthode spécifiée par la propriété SelectMethod pour récupérer les données de l'objet EmployeeLogic. Étant donné que la propriété AutoGenerateDeleteButton a la valeur true, le contrôle GridView affiche automatiquement un bouton Supprimer.

Si vous cliquez sur le bouton Supprimer, l'action Delete est exécutée à l'aide de la méthode spécifiée par la propriété DeleteMethod et de tous les paramètres spécifiés dans la collection DeleteParameters.

Dans cet exemple de code, quelques étapes de prétraitement et de post-traitement sont également effectuées. Le délégué NorthwindEmployeeDeleting est appelé pour gérer l'événement Deleting avant que l'action Delete ne soit effectuée et le délégué NorthwindEmployeeDeleted est appelé pour gérer l'événement Deleted une fois l'action Delete terminée, afin de gérer les exceptions. Dans cet exemple, si NorthwindDataException est levée, elle est gérée par ce délégué.

Pour examiner l'implémentation de l'objet métier de couche intermédiaire EmployeeLogic qu'utilise cet exemple de code, consultez la vue d'ensemble de la classe dans ObjectDataSourceStatusEventArgs.

<%@ Register TagPrefix="aspSample" Namespace="Samples.AspNet.CS" Assembly="Samples.AspNet.CS" %>
<%@ Import namespace="Samples.AspNet.CS" %>
<%@ Page language="c#" %>
<Script runat="server">
private void NorthwindEmployeeDeleting(object source, ObjectDataSourceMethodEventArgs e)
{
  // The GridView passes the ID of the employee
  // to be deleted. However, the buisiness object, EmployeeLogic,
  // requires a NorthwindEmployee parameter, named "ne". Create
  // it now and add it to the parameters collection.
  IDictionary paramsFromPage = e.InputParameters;
  if (paramsFromPage["EmpID"] != null) {
    NorthwindEmployee ne
      = new NorthwindEmployee( Int32.Parse(paramsFromPage["EmpID"].ToString()));
    // Remove the old EmpID parameter.
    paramsFromPage.Clear();
    paramsFromPage.Add("ne", ne);
  }
}

private void NorthwindEmployeeDeleted(object source, ObjectDataSourceStatusEventArgs e)
{
  // Handle the Exception if it is a NorthwindDataException
  if (e.Exception != null)
  {

    // Handle the specific exception type. The ObjectDataSource wraps
    // any Exceptions in a TargetInvokationException wrapper, so
    // check the InnerException property for expected Exception types.
    if (e.Exception.InnerException is NorthwindDataException)
    {
      Label1.Text = e.Exception.InnerException.Message;
      // Because the exception is handled, there is
      // no reason to throw it.
      e.ExceptionHandled = true;
    }
  }
}

</Script>
<html>
  <head>
    <title>ObjectDataSource - C# Example</title>
  </head>
  <body>
    <form id="Form1" method="post" runat="server">

        <asp:gridview
          id="GridView1"
          runat="server"
          datasourceid="ObjectDataSource1"
          autogeneratedeletebutton="true"
          autogeneratecolumns="false"
          datakeynames="EmpID">
          <columns>
            <asp:boundfield headertext="EmpID" datafield="EmpID" />
            <asp:boundfield headertext="First Name" datafield="FirstName" />
            <asp:boundfield headertext="Last Name" datafield="LastName" />
          </columns>
        </asp:gridview>

        <asp:objectdatasource
          id="ObjectDataSource1"
          runat="server"
          selectmethod="GetAllEmployees"
          deletemethod="DeleteEmployee"
          ondeleting="NorthwindEmployeeDeleting"
          ondeleted="NorthwindEmployeeDeleted"
          typename="Samples.AspNet.CS.EmployeeLogic">
          <deleteparameters>
            <asp:parameter name="EmpID" type="Int32" />
          </deleteparameters>
        </asp:objectdatasource>

        <asp:label id="Label1" runat="server" />

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

Windows 98, Windows 2000 SP4, Windows Server 2003, Windows XP Édition Media Center, Windows XP Professionnel Édition x64, Windows XP SP2, Windows XP Starter Edition

Le .NET Framework ne prend pas en charge toutes les versions de chaque plate-forme. Pour obtenir la liste des versions prises en charge, consultez Configuration requise.

.NET Framework

Prise en charge dans : 2.0
Afficher: