ObjectDataSource.SelectMethod Eigenschaft
Definition
Wichtig
Einige Informationen beziehen sich auf Vorabversionen, die vor dem Release ggf. grundlegend überarbeitet werden. Microsoft übernimmt hinsichtlich der hier bereitgestellten Informationen keine Gewährleistungen, seien sie ausdrücklich oder konkludent.
Ruft den Namen der Methode oder der Funktion auf, die vom ObjectDataSource-Steuerelement zum Abrufen von Daten aufgerufen wird, oder legt diesen fest.
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
Eigenschaftswert
Eine Zeichenfolge, die den Namen der Methode oder der Funktion darstellt, mit deren Hilfe die ObjectDataSource Daten abruft. Der Standardwert ist eine leere Zeichenfolge ("").
Beispiele
Im folgenden Codebeispiel wird veranschaulicht, wie ein GridView Steuerelement Daten mithilfe eines Steuerelements ObjectDataSource auf einer Web Forms-Seite anzeigen kann. Der ObjectDataSource identifiziert einen teilweise oder vollqualifizierten Klassennamen mit seiner TypeName -Eigenschaft und einer Methode, die aufgerufen wird, um Daten mit seiner SelectMethod -Eigenschaft abzurufen. Zur Laufzeit wird das -Objekt erstellt, und die -Methode wird mithilfe von Reflektion aufgerufen. Das GridView -Steuerelement listet die Auflistung auf, die IEnumerable von der von der - SelectMethod Eigenschaft angegebenen -Methode zurückgegeben wird, und zeigt die Daten an.
<%@ 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>
Hinweise
Die angegebene Methode kann über eine beliebige Methodensignatur verfügen, aber sie muss einen der in der folgenden Tabelle gezeigten Typen zurückgeben, damit das ObjectDataSource Steuerelement sie erfolgreich aufrufen kann.
Rückgabetyp | Aktion |
---|---|
IEnumerable | Wird IEnumerable von der Select -Methode zurückgegeben. |
DataTable | Ein DataView wird mit dem DataTable erstellt und von der Select -Methode zurückgegeben. |
DataView | Ein DataView wird von der Select -Methode zurückgegeben. |
DataSet | Die erste DataTable der DataSet wird extrahiert, und ein DataView wird erstellt und von der Select -Methode zurückgegeben. |
Object | Das Objekt wird in eine Ein-Element-Auflistung IEnumerable umschlossen und von der Select -Methode zurückgegeben. |
Die SelectMethod -Eigenschaft delegiert an die SelectMethod -Eigenschaft des ObjectDataSourceView -Objekts, das dem ObjectDataSource Steuerelement zugeordnet ist.
Wenn Sie die ObjectDataSource -Klasse zum Löschen oder Aktualisieren von Daten verwenden, stellen Sie sicher, dass die parameternamen, die für das ObjectDataSource Steuerelement in der DeleteParameters Auflistung oder UpdateParameters Auflistung konfiguriert sind, mit den Spaltennamen übereinstimmen, die von der select-Methode zurückgegeben werden.
Lebensdauer eines Objekts
Die durch die SelectMethod -Eigenschaft identifizierte Methode kann eine Instanzmethode oder eine static
(Shared
in Visual Basic) Methode sein. Wenn es sich um eine Instanzmethode handelt, wird das Geschäftsobjekt jedes Mal erstellt und zerstört, wenn die von der SelectMethod -Eigenschaft angegebene Methode aufgerufen wird. Sie können die ObjectCreated Ereignisse und ObjectCreating behandeln, um mit dem Geschäftsobjekt zu arbeiten, bevor die von der SelectMethod -Eigenschaft angegebene Methode aufgerufen wird. Sie können auch das ObjectDisposing Ereignis behandeln, das ausgelöst wird, nachdem die von der SelectMethod -Eigenschaft angegebene Methode aufgerufen wurde. Wenn das Geschäftsobjekt die IDisposable -Schnittstelle implementiert, wird die Dispose -Methode aufgerufen, bevor das Objekt zerstört wird. Wenn die -Methode (Shared
in Visual Basic) lautet static
, wird das Geschäftsobjekt nie erstellt, und Sie können die ObjectCreatedEreignisse , ObjectCreatingund ObjectDisposing nicht verarbeiten.
Zusammenführen von Parametern
Parameter werden der Auflistung aus den SelectParameters folgenden Quellen hinzugefügt:
Deklarativ aus dem
SelectParameters
-Element.Programmgesteuert von der
Selecting
-Methode.
Zunächst werden die im SelectParameters
-Element aufgeführten Parameter hinzugefügt. Zweitens werden Parameter programmgesteuert hinzugefügt und im -Ereignis entfernt, das Selecting vor der Ausführung der Select Methode auftritt. Die -Methode wird aufgelöst, nachdem die Parameter zusammengeführt wurden. Die Methodenauflösung wird im nächsten Abschnitt erläutert.
Wichtig
Sie sollten jeden Parameterwert überprüfen, den Sie vom Client erhalten. Die Laufzeit ersetzt einfach den Parameterwert in der SelectMethod -Eigenschaft.
Methodenauflösung
Wenn die Select -Methode aufgerufen wird, werden die Datenfelder aus dem datengebundenen Steuerelement, die parameter, die SelectParameters
deklarativ im -Element erstellt wurden, und die Parameter, die Selecting im Ereignishandler hinzugefügt wurden, zusammengeführt. (Weitere Informationen finden Sie im vorherigen Abschnitt.) Das ObjectDataSource Steuerelement versucht dann, eine methode zu finden, die aufgerufen werden soll. Zunächst wird nach einer oder mehreren Methoden mit dem Namen gesucht, der in der SelectMethod -Eigenschaft angegeben ist. Wenn keine Übereinstimmung gefunden wird, wird eine InvalidOperationException Ausnahme ausgelöst. Wenn eine Übereinstimmung gefunden wird, wird nach übereinstimmenden Parameternamen gesucht. Angenommen, ein Typ, der von der TypeName -Eigenschaft angegeben wird, verfügt über zwei Methoden mit dem Namen SelectARecord
. Einer SelectARecord
verfügt über einen Parameter, ID
und der andere SelectARecord
verfügt über zwei Parameter, Name
und Number
. Wenn die SelectParameters Auflistung nur über einen Parameter namens verfügt ID
, wird die SelectARecord
-Methode mit nur dem ID
-Parameter aufgerufen. Der Typ des Parameters wird beim Auflösen der Methoden nicht überprüft. Die Reihenfolge der Parameter spielt keine Rolle.
Wenn die DataObjectTypeName -Eigenschaft festgelegt ist, wird die -Methode auf eine andere Weise aufgelöst. Sucht ObjectDataSource nach einer Methode mit dem Namen, der in der SelectMethod -Eigenschaft angegeben ist, die einen Parameter des in der -Eigenschaft angegebenen Typs DataObjectTypeName akzeptiert. In diesem Fall spielt der Name des Parameters keine Rolle.