Freigeben über


ObjectDataSource.SelectMethod Eigenschaft

Definition

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, IDund 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.

Gilt für:

Weitere Informationen