Condividi tramite


ObjectDataSource.SelectMethod Proprietà

Definizione

Ottiene o imposta il nome del metodo o funzione che il controllo ObjectDataSource richiama per recuperare i dati.

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. Il valore predefinito è una stringa vuota ("").

Esempio

Nell'esempio di codice seguente viene illustrato come un controllo può visualizzare i dati usando un GridViewObjectDataSource controllo in una pagina Web Forms. Identifica ObjectDataSource 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à. In fase di esecuzione, l'oggetto viene creato e il metodo viene chiamato usando reflection. Il GridView controllo enumera tramite la IEnumerable raccolta restituita dal metodo specificato dalla SelectMethod proprietà e visualizza i dati.

<%@ 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 qualsiasi firma del metodo, ma deve restituire uno dei tipi visualizzati nella tabella seguente per il ObjectDataSource controllo da chiamare correttamente.

Tipo restituito Azione
IEnumerable Viene IEnumerable restituito dal Select metodo .
DataTable Viene DataView creato usando e DataTable restituito dal Select metodo .
DataView Viene DataView restituito dal Select metodo .
DataSet Il primo DataTable oggetto DataSet viene estratto e viene DataView creato e restituito dal Select metodo .
Object L'oggetto viene eseguito il wrapping in una raccolta di elementi IEnumerable uno e restituito dal Select metodo .

La SelectMethod proprietà delega alla SelectMethod proprietà dell'oggetto ObjectDataSourceView associato al ObjectDataSource controllo.

Quando si usa la ObjectDataSource classe per eliminare o aggiornare i dati, assicurarsi che i nomi dei parametri configurati per il ObjectDataSource controllo nella DeleteParameters raccolta o UpdateParameters raccolta corrispondano ai nomi di colonna restituiti dal metodo select.

Durata dell'oggetto

Il metodo identificato dalla SelectMethod proprietà può essere un metodo di istanza o un static metodo (Shared in Visual Basic). Se è un metodo di istanza, l'oggetto business viene creato e eliminato ogni volta che viene chiamato il SelectMethod metodo specificato dalla proprietà. È possibile gestire gli ObjectCreated eventi e ObjectCreating per usare l'oggetto business prima che venga chiamato il SelectMethod metodo specificato dalla proprietà . È anche possibile gestire l'evento ObjectDisposing generato dopo la chiamata del SelectMethod metodo specificato dalla proprietà . Se l'oggetto business implementa l'interfaccia IDisposable , il Dispose metodo viene chiamato prima che l'oggetto venga distrutto. Se il metodo è static (Shared in Visual Basic), l'oggetto business non viene mai creato e non è possibile gestire gli ObjectCreatedeventi , ObjectCreatinge ObjectDisposing .

Unione dei parametri

I parametri vengono aggiunti alla SelectParameters raccolta da queste origini:

  • Dichiarativamente dall'elemento SelectParameters .

  • A livello di codice dal Selecting metodo .

Prima di tutto, vengono aggiunti i parametri elencati nell'elemento SelectParameters . In secondo luogo, i parametri vengono aggiunti e rimossi a livello di codice nell'evento, che si verifica prima dell'esecuzione Selecting del Select metodo. Il metodo viene risolto dopo l'unione dei parametri. La risoluzione dei metodi viene illustrata nella sezione successiva.

Importante

È necessario convalidare qualsiasi valore di parametro ricevuto dal client. Il runtime sostituisce semplicemente il valore del parametro nella SelectMethod proprietà.

Risoluzione dei metodi

Quando viene chiamato il Select metodo, i campi dati dal controllo associato ai dati, i parametri creati in modo dichiarativo nell'elemento SelectParameters e i parametri aggiunti nel Selecting gestore eventi sono tutti uniti. Per altre informazioni, vedere la sezione precedente. Il ObjectDataSource controllo tenta quindi di trovare un metodo da chiamare. In primo luogo, cerca uno o più metodi con il nome specificato nella SelectMethod proprietà. Se non viene trovata alcuna corrispondenza, viene generata un'eccezione InvalidOperationException . Se viene trovata una corrispondenza, cerca i nomi dei parametri corrispondenti. Si supponga, ad esempio, che un tipo specificato dalla TypeName proprietà disponga di due metodi denominati SelectARecord. Uno SelectARecord ha un parametro, ID, e l'altro SelectARecord ha due parametri Name e Number. Se l'insieme SelectParameters ha un solo parametro denominato ID, il metodo con solo il SelectARecordID parametro viene chiamato. Il tipo del parametro non viene controllato nella risoluzione dei metodi. L'ordine dei parametri non è importante.

Se la DataObjectTypeName proprietà è impostata, il metodo viene risolto in modo diverso. Cerca ObjectDataSource un metodo con il nome specificato nella SelectMethod proprietà che accetta un parametro del tipo specificato nella DataObjectTypeName proprietà . In questo caso, il nome del parametro non è importante.

Si applica a

Vedi anche