Partager via


ObjectDataSource.SelectMethod Propriété

Définition

Obtient ou définit le nom de la méthode ou de la fonction appelée par le ObjectDataSource contrôle 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 utilisée ObjectDataSource 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. Il ObjectDataSource identifie 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 L’objet IEnumerable est retourné par la Select méthode.
DataTable A DataView est créé à l’aide de la DataTable méthode et retournée par la Select méthode.
DataView A DataView est retourné par la Select méthode.
DataSet Le premier DataTable du DataSet fichier est extrait et un DataView est créé et retourné par la Select méthode.
Object L’objet est encapsulé dans une collection d’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, vérifiez 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 de l’objet

La méthode identifiée par la SelectMethod propriété peut être une méthode d’instance ou une static méthode (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 SelectMethod propriété est appelée. Vous pouvez gérer les événements et ObjectCreating gérer l’utilisation ObjectCreated de l’objet métier avant l’appel de la méthode spécifiée par la SelectMethod propriété. 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 (Shareden Visual Basic), l’objet métier n’est jamais créé et vous ne pouvez pas gérer les événements et ObjectCreatingObjectDisposing les ObjectCreatedévénements.

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 .

  • Par programmation à 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 , qui se produit avant l’exécution de la Select méthode. La méthode est résolue une fois les paramètres fusionnés. 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 qui ont été 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, elle recherche 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, IDet 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 de manière différente. Recherche ObjectDataSource une méthode portant le nom spécifié dans la SelectMethod propriété qui accepte 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