Exporter (0) Imprimer
Développer tout

ObjectDataSource.SelectMethod, propriété

Mise à jour : novembre 2007

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)
<asp:ObjectDataSource SelectMethod="String" />

Valeur de propriété

Type : System.String

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 Selecting, 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 Selecting, 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.

Note de sécurité :

Vous devez valider toute valeur de paramètre que vous recevez du client. Le runtime substitue simplement la valeur de paramètre dans la propriété SelectMethod.

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#" %>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
    "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<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: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#" %>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
    "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" >
  <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 Vista, Windows XP SP2, Windows XP Media Center Edition, Windows XP Professionnel Édition x64, Windows XP Starter Edition, Windows Server 2003, Windows Server 2000 SP4, Windows Millennium Edition, Windows 98

Le .NET Framework et le .NET Compact Framework ne prennent pas en charge toutes les versions de chaque plateforme. Pour obtenir la liste des versions prises en charge, consultez Configuration requise du .NET Framework.

.NET Framework

Pris en charge dans : 3.5, 3.0, 2.0

Ajouts de la communauté

AJOUTER
Afficher:
© 2014 Microsoft