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

ObjectDataSource.SelectMethod, propriété

Remarque : cette propriété est nouvelle dans le .NET Framework version 2.0.

Obtient ou définit le nom de la méthode ou de la fonction que le contrôle ObjectDataSource appelle pour récupérer des données.

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

public string SelectMethod { get; set; }
/** @property */
public String get_SelectMethod ()

/** @property */
public void set_SelectMethod (String value)

public function get SelectMethod () : String

public function set SelectMethod (value : String)

Valeur de la propriété

Chaîne qui représente le nom de la méthode ou de la fonction que ObjectDataSource utilise pour récupérer des données. La valeur par défaut est une chaîne vide ("").

La méthode spécifiée peut comporter une signature de méthode quelconque, mais elle doit retourner l'un des types indiqués dans le tableau suivant de façon à ce que le contrôle ObjectDataSource puisse l'appeler.

Type de retour

Action

IEnumerable

IEnumerable est retourné par la méthode Select.

DataTable

Un DataView est créé à l'aide de DataTable et est retourné par la méthode Select.

DataView

DataView est retourné par la méthode Select.

DataSet

Le premier DataTable du DataSet est extrait et un DataView est créé et retourné par la méthode Select.

Object

L'objet est encapsulé dans une collection IEnumerable d'un élément et est retourné par la méthode Select.

La propriété SelectMethod délègue à la propriété SelectMethod de l'objet ObjectDataSourceView associé au contrôle ObjectDataSource.

Durée de vie des objets

La méthode identifiée par la propriété SelectMethod peut être une méthode d'instance ou une méthode (static (Shared en Visual Basic). S'il s'agit d'une méthode d'instance, l'objet métier est créé et détruit chaque fois que la méthode spécifiée par la propriété SelectMethod est appelée. Vous pouvez gérer les événements ObjectCreated et ObjectCreating pour utiliser l'objet métier avant que la méthode spécifiée par la propriété SelectMethod ne soit appelée. Vous pouvez également gérer l'événement ObjectDisposing qui est déclenché après l'appel de la méthode spécifiée par la propriété SelectMethod. Si l'objet métier implémente l'interface IDisposable, la méthode Dispose est appelée avant la destruction de l'objet. Si la méthode est une méthode static (Shared en Visual Basic), l'objet métier n'est jamais créé et vous ne pouvez pas gérer les événements ObjectCreated, ObjectCreating et ObjectDisposing.

Fusion des paramètres

Les paramètres sont ajoutés à la collection SelectParameters depuis les sources suivantes :

  • Depuis l'élément SelectParameters, de manière déclarative.

  • Depuis la méthode Delete, par programme.

Les paramètres répertoriés dans l'élément SelectParameters sont d'abord ajoutés. Puis, ils sont ajoutés par programme et supprimés de l'événement Deleting, qui se produit avant l'exécution de la méthode Select. La méthode est résolue après la fusion des paramètres. La résolution de méthode est abordée dans la section suivante.

Résolution de méthode

Lorsque la méthode Select est appelée, les champs de données du contrôle lié aux données, les paramètres créés de manière déclarative dans l'élément SelectParameters et les paramètres ajoutés dans le gestionnaire d'événements Selecting sont tous fusionnés. (Pour plus d'informations, consultez la section précédente.) Le contrôle ObjectDataSource essaie ensuite de rechercher une méthode à appeler. D'abord, il recherche une ou plusieurs méthodes avec le nom spécifié dans la propriété SelectMethod. Si aucune correspondance n'est trouvée, une exception InvalidOperationException est levée. Si une correspondance est trouvée, il recherche ensuite des noms de paramètres correspondants. Supposez, par exemple, qu'un type spécifié par la propriété TypeName possède deux méthodes nommées SelectARecord. L'une SelectARecord comporte un paramètre, ID et l'autre SelectARecord comporte deux paramètres, Name et Number. Si la collection SelectParameters comporte un seul paramètre nommé ID, la méthode SelectARecord comportant uniquement le paramètre ID est appelée. Le type du paramètre n'est pas vérifié lors de la résolution des méthodes. L'ordre des paramètres est sans importance.

Si la propriété DataObjectTypeName est définie, la méthode est résolue différemment. ObjectDataSource recherche une méthode avec le nom spécifié dans la propriété SelectMethod qui prend un paramètre du type spécifié dans la propriété DataObjectTypeName. Dans ce cas, le nom du paramètre est sans importance.

L'exemple de code suivant montre comment un contrôle GridView peut afficher des données à l'aide d'un contrôle ObjectDataSource sur une page Web Forms. ObjectDataSource identifie un nom de classe qualifié complètement ou partiellement avec sa propriété TypeName et une méthode qui est appelée pour récupérer des données avec sa propriété SelectMethod. Au moment de l'exécution, l'objet est créé et la méthode est appelée par réflexion. Le contrôle GridView énumère la collection IEnumerable qui est retournée par la méthode spécifiée par la propriété SelectMethod et affiche les données.

<%@ Register TagPrefix="aspSample" Namespace="Samples.AspNet.CS" Assembly="Samples.AspNet.CS" %>
<%@ Page language="c#" %>
<html>
  <head>
    <title>ObjectDataSource - C# Example</title>
  </head>
  <body>
    <form id="Form1" method="post" runat="server">

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

        <asp:objectdatasource
          id="ObjectDataSource1"
          runat="server"
          selectmethod="GetAllEmployees"
          typename="Samples.AspNet.CS.EmployeeLogic" />

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

<%@ Register TagPrefix="aspSample" Namespace="Samples.AspNet.JSL" Assembly="Samples.AspNet.JSL" %>
<%@ Page language="VJ#" %>
<html>
  <head>
    <title>ObjectDataSource - VJ# Example</title>
  </head>
  <body>
    <form id="Form1" method="post" runat="server">

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

        <asp:objectdatasource
          id="ObjectDataSource1"
          runat="server"
          selectmethod="GetAllEmployees"
          typename="Samples.AspNet.JSL.EmployeeLogic" />

    </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: