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. Sie muss jedoch einen der in der folgenden Tabelle aufgeführten 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 A DataView wird von der Select -Methode zurückgegeben.
DataSet Die erste DataTable der DataSet wird extrahiert, und von der Select -Methode wird ein DataView erstellt und zurückgegeben.
Object Das Objekt wird in eine Auflistung mit einem Element IEnumerable umschlossen und von der Select -Methode zurückgegeben.

Die SelectMethod -Eigenschaft delegiert 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 für das Steuerelement in der ObjectDataSourceDeleteParameters Auflistung oder UpdateParameters Auflistung konfigurierten Parameternamen mit den Spaltennamen übereinstimmen, die von der select-Methode zurückgegeben werden.

Lebensdauer eines Objekts

Die Methode, die durch die SelectMethod -Eigenschaft identifiziert wird, kann eine instance-Methode oder eine static (Shared in Visual Basic) -Methode sein. Wenn es sich um eine instance-Methode 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 wird. 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.

Parameterzusammenführung

Parameter werden der SelectParameters Auflistung aus den 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 Runtime 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 deklarativ im SelectParameters 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 in der SelectMethod -Eigenschaft angegebenen Namen gesucht. 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 und NumberName . 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 typs akzeptiert, der in der DataObjectTypeName -Eigenschaft angegeben ist. In diesem Fall spielt der Name des Parameters keine Rolle.

Gilt für:

Weitere Informationen