ObjectDataSource.SelectMethod ObjectDataSource.SelectMethod ObjectDataSource.SelectMethod ObjectDataSource.SelectMethod Property

Definizione

Ottiene o imposta il nome del metodo o funzione che il controllo ObjectDataSource richiama per recuperare i dati.Gets or sets the name of the method or function that the ObjectDataSource control invokes to retrieve data.

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

Valore della proprietà

Stringa che rappresenta il nome del metodo o funzione che l'oggetto ObjectDataSource utilizza per recuperare i dati.A string that represents the name of the method or function that the ObjectDataSource uses to retrieve data. Il valore predefinito è una stringa vuota ("").The default is an empty string ("").

Esempi

Nell'esempio di codice seguente viene illustrato GridView il modo in cui un controllo ObjectDataSource può visualizzare i dati utilizzando un controllo in una pagina Web Form.The following code example demonstrates how a GridView control can display data using an ObjectDataSource control on a Web Forms page. Identifica un nome di classe parzialmente o completo con la relativa TypeName proprietà e un metodo chiamato per recuperare i dati con la relativa SelectMethod proprietà. ObjectDataSourceThe ObjectDataSource identifies a partially or fully qualified class name with its TypeName property and a method that is called to retrieve data with its SelectMethod property. In fase di esecuzione, l'oggetto viene creato e il metodo viene chiamato mediante reflection.At run time, the object is created and the method is called using reflection. Il GridView controllo enumera tramite la IEnumerable raccolta restituita dal metodo specificato dalla SelectMethod proprietà e Visualizza i dati.The GridView control enumerates through the IEnumerable collection that is returned by the method that is specified by the SelectMethod property, and displays the data.

<%@ 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>

Commenti

Il metodo specificato può avere una firma del metodo, ma deve restituire uno dei tipi mostrati nella tabella seguente affinché il controllo ObjectDataSource lo chiami correttamente.The specified method can have any method signature, but it must return one of the types shown in the following table for the ObjectDataSource control to call it successfully.

Tipo restituitoReturn type OperazioneAction
IEnumerable IEnumerable Viene restituitoSelect dal metodo.The IEnumerable is returned by the Select method.
DataTable Un DataView oggetto viene creato DataTable usando e restituito dal Select metodo.A DataView is created using the DataTable and returned by the Select method.
DataView Un DataView oggetto viene restituito Select dal metodo.A DataView is returned by the Select method.
DataSet Il primo DataTable DataSet oggetto di viene estratto e un oggetto DataView viene creato e restituito dal Select metodo.The first DataTable of the DataSet is extracted, and a DataView is created and returned by the Select method.
Object L'oggetto viene racchiuso in una raccolta di IEnumerable un elemento e restituito Select dal metodo.The object is wrapped in a one-element IEnumerable collection and returned by the Select method.

La SelectMethod proprietà delega SelectMethod alla proprietà dell' ObjectDataSourceView oggetto associato ObjectDataSource al controllo.The SelectMethod property delegates to the SelectMethod property of the ObjectDataSourceView object that is associated with the ObjectDataSource control.

Quando si usa la ObjectDataSource classe per eliminare o aggiornare i dati, assicurarsi che i nomi di parametro configurati per il DeleteParameters ObjectDataSource controllo nella UpdateParameters raccolta o nella raccolta corrispondano ai nomi di colonna restituiti dal metodo Select. .When you use the ObjectDataSource class to delete or update data, make sure that the parameter names configured for the ObjectDataSource control in the DeleteParameters collection or UpdateParameters collection match the column names that are returned by the select method.

Durata dell'oggettoObject Lifetime

Il metodo identificato dalla SelectMethod proprietà può essere un metodo di istanza o un static metodo (Shared in Visual Basic).The method that is identified by the SelectMethod property can be an instance method or a static (Shared in Visual Basic) method. Se si tratta di un metodo di istanza, l'oggetto business viene creato ed eliminato ogni volta che viene chiamato il metodo SelectMethod specificato dalla proprietà.If it is an instance method, the business object is created and destroyed each time the method that is specified by the SelectMethod property is called. È possibile gestire ObjectCreated gli eventi ObjectCreating e per utilizzare l'oggetto business prima SelectMethod che venga chiamato il metodo specificato dalla proprietà.You can handle the ObjectCreated and ObjectCreating events to work with the business object before the method that is specified by the SelectMethod property is called. È anche possibile gestire l' ObjectDisposing evento generato dopo la chiamata del metodo specificato SelectMethod dalla proprietà.You can also handle the ObjectDisposing event that is raised after the method that is specified by the SelectMethod property is called. Se l'oggetto business implementa l' IDisposable interfaccia, il Dispose metodo viene chiamato prima che l'oggetto venga eliminato definitivamente.If the business object implements the IDisposable interface, the Dispose method is called before the object is destroyed. Se il metodo è static (Shared in Visual Basic), l'oggetto business non viene mai creato e non è possibile ObjectCreatedgestire ObjectCreatinggli eventi ObjectDisposing , e.If the method is static (Shared in Visual Basic), the business object is never created and you cannot handle the ObjectCreated, ObjectCreating, and ObjectDisposing events.

Unione di parametriParameter Merging

I SelectParameters parametri vengono aggiunti alla raccolta da queste origini:Parameters are added to the SelectParameters collection from these sources:

  • In modo dichiarativo dall' SelectParameters elemento.Declaratively from the SelectParameters element.

  • A livello di codice Selecting dal metodo.Programmatically from the Selecting method.

In primo luogo, vengono aggiunti i SelectParameters parametri elencati nell'elemento.First, the parameters listed in the SelectParameters element are added. In secondo luogo, i parametri vengono aggiunti e rimossi a Selecting livello di codice nell'evento, Select che si verifica prima dell'esecuzione del metodo.Second, parameters are programmatically added and removed in the Selecting event, which occurs before the Select method is run. Il metodo viene risolto dopo l'Unione dei parametri.The method is resolved after the parameters are merged. La risoluzione dei metodi viene descritta nella sezione successiva.Method resolution is discussed in the next section.

Importante

È necessario convalidare qualsiasi valore di parametro ricevuto dal client.You should validate any parameter value that you receive from the client. Il runtime sostituisce semplicemente il valore del parametro nella SelectMethod proprietà.The runtime simply substitutes the parameter value into the SelectMethod property.

Risoluzione del metodoMethod Resolution

Quando viene Select chiamato il metodo, i campi dati del controllo associato SelectParameters a dati, i parametri creati in modo dichiarativo nell'elemento e i parametri aggiunti nel Selecting gestore eventi vengono uniti.When the Select method is called, the data fields from the data-bound control, the parameters that were created declaratively in the SelectParameters element, and the parameters that were added in the Selecting event handler are all merged. Per ulteriori informazioni, vedere la sezione precedente. Il ObjectDataSource controllo tenta quindi di trovare un metodo da chiamare.(For more information, see the preceding section.) The ObjectDataSource control then attempts to find a method to call. Innanzitutto, cerca uno o più metodi con il nome specificato nella SelectMethod proprietà.First, it looks for one or more methods with the name that is specified in the SelectMethod property. Se non viene trovata alcuna corrispondenza, InvalidOperationException viene generata un'eccezione.If no match is found, an InvalidOperationException exception is thrown. Se viene trovata una corrispondenza, Cerca i nomi dei parametri corrispondenti.If a match is found, it then looks for matching parameter names. Si supponga, ad esempio, che un tipo specificato dalla TypeName proprietà disponga di due metodi SelectARecorddenominati.For example, suppose a type that is specified by the TypeName property has two methods named SelectARecord. Uno SelectARecord ha un parametro, ID, e l'altro SelectARecord ha due parametri, Name e Number.One SelectARecord has one parameter, ID, and the other SelectARecord has two parameters, Name and Number. Se la SelectParameters raccolta ha un solo parametro denominato ID, viene SelectARecord chiamato il metodo con ID solo il parametro.If the SelectParameters collection has only one parameter named ID, the SelectARecord method with just the ID parameter is called. Il tipo del parametro non è archiviato per la risoluzione dei metodi.The type of the parameter is not checked in resolving the methods. L'ordine dei parametri non è rilevante.The order of the parameters does not matter.

Se la DataObjectTypeName proprietà è impostata, il metodo viene risolto in modo diverso.If the DataObjectTypeName property is set, the method is resolved in a different way. Il ObjectDataSource Cerca un metodo con il nome specificato SelectMethod nella proprietà che accetta un parametro del tipo specificato nella DataObjectTypeName proprietà.The ObjectDataSource looks for a method with the name that is specified in the SelectMethod property that takes one parameter of the type that is specified in the DataObjectTypeName property. In questo caso, il nome del parametro non è rilevante.In this case, the name of the parameter does not matter.

Si applica a

Vedi anche