ObjectDataSource.SelectMethod Propriété

Définition

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.

public:
 property System::String ^ SelectMethod { System::String ^ get(); void set(System::String ^ value); };
public string SelectMethod { get; set; }
member this.SelectMethod : string with get, set
Public Property SelectMethod As String

Valeur de 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 ("").

Exemples

L’exemple de code suivant montre comment un GridView contrôle peut afficher des données à l’aide d’un ObjectDataSource contrôle sur une page Web Forms. Identifie ObjectDataSource un nom de classe partiellement ou complet avec sa TypeName propriété et une méthode appelée pour récupérer des données avec sa SelectMethod propriété. Au moment de l’exécution, l’objet est créé et la méthode est appelée à l’aide de la réflexion. Le GridView contrôle énumère la IEnumerable collection retournée par la méthode spécifiée par la SelectMethod propriété 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.VB" Assembly="Samples.AspNet.VB" %>
<%@ Page language="vb" %>
<!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 - Visual Basic 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.VB.EmployeeLogic" />

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

Remarques

La méthode spécifiée peut avoir n’importe quelle signature de méthode, mais elle doit retourner l’un des types indiqués dans le tableau suivant pour que le ObjectDataSource contrôle l’appelle correctement.

Type de retour Action
IEnumerable le IEnumerable est retourné par la Select méthode .
DataTable Un DataView est créé à l’aide du DataTable et retourné par la Select méthode .
DataView Un DataView est retourné par la Select méthode .
DataSet Le premier DataTable de DataSet est extrait et un DataView est créé et retourné par la Select méthode .
Object L’objet est encapsulé dans une collection à un élément IEnumerable et retourné par la Select méthode .

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

Lorsque vous utilisez la ObjectDataSource classe pour supprimer ou mettre à jour des données, assurez-vous que les noms de paramètres configurés pour le ObjectDataSource contrôle dans la collection ou UpdateParameters la DeleteParameters collection correspondent aux noms de colonnes retournés par la méthode select.

Durée de vie des objets

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

Fusion de paramètres

Les paramètres sont ajoutés à la SelectParameters collection à partir de ces sources :

  • De manière déclarative à partir de l’élément SelectParameters .

  • Programmatiquement à partir de la Selecting méthode .

Tout d’abord, les paramètres répertoriés dans l’élément SelectParameters sont ajoutés. Deuxièmement, les paramètres sont ajoutés et supprimés par programmation dans l’événement Selecting , ce qui se produit avant l’exécution de la Select méthode. 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.

Important

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

Résolution de méthode

Lorsque la Select méthode 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 Selecting gestionnaire d’événements sont tous fusionnés. (Pour plus d’informations, consultez la section précédente.) Le ObjectDataSource contrôle tente ensuite de trouver une méthode à appeler. Tout d’abord, il recherche une ou plusieurs méthodes portant le nom spécifié dans la SelectMethod propriété . Si aucune correspondance n’est trouvée, une InvalidOperationException exception est levée. Si une correspondance est trouvée, il recherche ensuite les noms de paramètres correspondants. Par exemple, supposons qu’un type spécifié par la TypeName propriété possède deux méthodes nommées SelectARecord. L’un SelectARecord a un paramètre, ID, et l’autre SelectARecord a deux paramètres, Name et Number. Si la SelectParameters collection n’a qu’un seul paramètre nommé ID, la SelectARecord méthode avec uniquement le ID paramètre est appelée. Le type du paramètre n’est pas archivé pour résoudre les méthodes. L’ordre des paramètres n’a pas d’importance.

Si la DataObjectTypeName propriété est définie, la méthode est résolue d’une autre manière. Recherche ObjectDataSource une méthode avec le nom spécifié dans la SelectMethod propriété qui prend un paramètre du type spécifié dans la DataObjectTypeName propriété . Dans ce cas, le nom du paramètre n’a pas d’importance.

S’applique à

Voir aussi