ObjectDataSource.SelectMethod Proprietà
Definizione
Importante
Alcune informazioni sono relative alla release non definitiva del prodotto, che potrebbe subire modifiche significative prima della release definitiva. Microsoft non riconosce alcuna garanzia, espressa o implicita, in merito alle informazioni qui fornite.
Ottiene o imposta il nome del metodo o della funzione richiamato dal ObjectDataSource controllo 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 della funzione utilizzata ObjectDataSource da per recuperare i dati. Il valore predefinito è una stringa vuota ("").
Esempio
Nell'esempio di codice seguente viene illustrato come un GridView controllo può visualizzare i dati usando un ObjectDataSource controllo in una pagina Web Form. ObjectDataSource 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à. In fase di esecuzione, l'oggetto viene creato e il metodo viene chiamato usando la reflection. Il GridView controllo enumera l'insieme IEnumerable restituito 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 illustrati nella tabella seguente affinché il ObjectDataSource controllo lo chiami correttamente.
| Tipo restituito | Action |
|---|---|
| IEnumerable | L'oggetto IEnumerable viene restituito dal Select metodo . |
| DataTable | Un DataView oggetto viene creato utilizzando DataTable e restituito dal Select metodo . |
| DataView | Un DataView oggetto viene 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 sottoposto a wrapping in una raccolta di un elemento IEnumerable 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 raccolta o UpdateParameters nella DeleteParameters 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 si tratta di un metodo di istanza, l'oggetto business viene creato e eliminato definitivamente ogni volta che viene chiamato il SelectMethod metodo specificato dalla proprietà . È possibile gestire gli ObjectCreated eventi e ObjectCreating per lavorare con 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 eliminato definitivamente. Se il metodo è static (Shared in Visual Basic), l'oggetto business non viene mai creato e non è possibile gestire gli ObjectCreatedeventi , ObjectCreatinge ObjectDisposing .
Unione di parametri
I parametri vengono aggiunti alla SelectParameters raccolta da queste origini:
In modo dichiarativo dall'elemento
SelectParameters.A livello di codice dal
Selectingmetodo .
In primo luogo, 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 del metodo
Quando viene chiamato il Select metodo , i campi dati del controllo associato a dati, i parametri creati in modo dichiarativo nell'elemento SelectParameters e i parametri aggiunti nel Selecting gestore eventi vengono uniti tutti. Per altre informazioni, vedere la sezione precedente. Il ObjectDataSource controllo tenta quindi di trovare un metodo da chiamare. Prima di tutto, 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à abbia due metodi denominati SelectARecord. Uno SelectARecord ha un parametro, IDe l'altro SelectARecord ha due parametri, Name e Number. Se la SelectParameters raccolta ha un solo parametro denominato ID, viene chiamato il SelectARecord metodo con solo il ID parametro . Il tipo del parametro non viene archiviato durante la risoluzione dei metodi. L'ordine dei parametri non è importante.
Se la DataObjectTypeName proprietà è impostata, il metodo viene risolto in modo diverso. ObjectDataSource Cerca 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.