ObjectDataSource.SelectMethod Propriété
Définition
Important
Certaines informations portent sur la préversion du produit qui est susceptible d’être en grande partie modifiée avant sa publication. Microsoft exclut toute garantie, expresse ou implicite, concernant les informations fournies ici.
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 de et DataTable 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 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, 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 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 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 , 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 qui ont été 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, il recherche alors 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é en résolvant 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.