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.Gets or sets the name of the method or function that the ObjectDataSource control invokes to retrieve data.

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.A string that represents the name of the method or function that the ObjectDataSource uses to retrieve data. Der Standardwert ist eine leere Zeichenfolge ("").The default is an empty string ("").

Beispiele

Im folgenden Codebeispiel wird veranschaulicht, GridView wie ein Steuerelement mithilfe eines ObjectDataSource -Steuer Elements auf einer Web Forms Seite Daten anzeigen kann.The following code example demonstrates how a GridView control can display data using an ObjectDataSource control on a Web Forms page. Der ObjectDataSource identifiziert einen teilweise oder voll qualifizierten Klassennamen mit seiner TypeName -Eigenschaft und einer-Methode, die aufgerufen wird, um SelectMethod Daten mit der-Eigenschaft abzurufen.The ObjectDataSource identifies a partially or fully qualified class name with its TypeName property and a method that is called to retrieve data with its SelectMethod property. Zur Laufzeit wird das-Objekt erstellt, und die-Methode wird mithilfe von Reflektion aufgerufen.At run time, the object is created and the method is called using reflection. Das GridView -Steuerelement listet die IEnumerable -Auflistung auf, die von der-Methode zurückgegeben wird, SelectMethod die von der-Eigenschaft angegeben wird, und zeigt die Daten an.The GridView control enumerates through the IEnumerable collection that is returned by the method that is specified by the SelectMethod property, and displays the data.

<%@ 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 Methoden Signatur verfügen, aber Sie muss einen der in der folgenden Tabelle dargestellten Typen zurückgeben ObjectDataSource , damit das Steuerelement Sie erfolgreich aufruft.The specified method can have any method signature, but it must return one of the types shown in the following table for the ObjectDataSource control to call it successfully.

RückgabetypReturn type AktionAction
IEnumerable Der IEnumerable wird von der Select -Methode zurückgegeben.The IEnumerable is returned by the Select method.
DataTable Eine DataView wird mit dem DataTable erstellt und von der Select -Methode zurückgegeben.A DataView is created using the DataTable and returned by the Select method.
DataView Eine DataView wird von der Select -Methode zurückgegeben.A DataView is returned by the Select method.
DataSet Der erste DataTable DataView von wird extrahiert, und ein wird von der Select -Methode erstellt und zurückgegeben. DataSetThe first DataTable of the DataSet is extracted, and a DataView is created and returned by the Select method.
Object Das-Objekt ist in einer Auflistung mit einem IEnumerable Element umschließt und wird Select von der-Methode zurückgegeben.The object is wrapped in a one-element IEnumerable collection and returned by the Select method.

Die SelectMethod -Eigenschaft delegiert an SelectMethod die-Eigenschaft ObjectDataSourceView des-Objekts, das dem ObjectDataSource -Steuerelement zugeordnet ist.The SelectMethod property delegates to the SelectMethod property of the ObjectDataSourceView object that is associated with the ObjectDataSource control.

Wenn Sie die ObjectDataSource -Klasse zum Löschen oder Aktualisieren von Daten verwenden, stellen Sie sicher, dass die Parameternamen, die DeleteParameters für das UpdateParameters ObjectDataSource Steuerelement in der Auflistung oder Auflistung konfiguriert wurden, den von der Select-Methode zurückgegebenen Spaltennamen entsprechen. .When you use the ObjectDataSource class to delete or update data, make sure that the parameter names configured for the ObjectDataSource control in the DeleteParameters collection or UpdateParameters collection match the column names that are returned by the select method.

Lebensdauer eines ObjektsObject Lifetime

Die Methode, die von der SelectMethod -Eigenschaft identifiziert wird, kann eine Instanzmethode oder eine static (Shared in Visual Basic)-Methode sein.The method that is identified by the SelectMethod property can be an instance method or a static (Shared in Visual Basic) method. Wenn es sich um eine Instanzmethode handelt, wird das Geschäftsobjekt jedes Mal erstellt und zerstört, wenn die durch SelectMethod die-Eigenschaft angegebene Methode aufgerufen wird.If it is an instance method, the business object is created and destroyed each time the method that is specified by the SelectMethod property is called. Sie können das ObjectCreated -Ereignis ObjectCreating und das-Ereignis behandeln, um mit dem Geschäftsobjekt zu arbeiten, bevor SelectMethod die durch die-Eigenschaft angegebene Methode aufgerufen wird.You can handle the ObjectCreated and ObjectCreating events to work with the business object before the method that is specified by the SelectMethod property is called. Sie können auch das ObjectDisposing -Ereignis behandeln, das ausgelöst wird, nachdem die durch die SelectMethod -Eigenschaft angegebene Methode aufgerufen wird.You can also handle the ObjectDisposing event that is raised after the method that is specified by the SelectMethod property is called. Wenn das Geschäftsobjekt die IDisposable -Schnittstelle implementiert, wird die Dispose -Methode aufgerufen, bevor das-Objekt zerstört wird.If the business object implements the IDisposable interface, the Dispose method is called before the object is destroyed. Wenn die-Methode static (Shared in Visual Basic) ist, wird das Geschäftsobjekt nie erstellt, und Sie können ObjectCreateddie ObjectCreatingEreignisse, ObjectDisposing und nicht verarbeiten.If the method is static (Shared in Visual Basic), the business object is never created and you cannot handle the ObjectCreated, ObjectCreating, and ObjectDisposing events.

Parameter ZusammenführungParameter Merging

Der Auflistung werden die Parameter SelectParameters aus den folgenden Quellen hinzugefügt:Parameters are added to the SelectParameters collection from these sources:

  • Deklarativ aus dem SelectParameters Element.Declaratively from the SelectParameters element.

  • Programm gesteuert über die Selecting -Methode.Programmatically from the Selecting method.

Zuerst werden die Parameter hinzugefügt, SelectParameters die im-Element aufgelistet sind.First, the parameters listed in the SelectParameters element are added. Zweitens werden Parameter im Selecting -Ereignis Programm gesteuert hinzugefügt und entfernt, was vor dem Ausführen der Select -Methode auftritt.Second, parameters are programmatically added and removed in the Selecting event, which occurs before the Select method is run. Die-Methode wird nach der Zusammenführung der Parameter aufgelöst.The method is resolved after the parameters are merged. Die Methoden Auflösung wird im nächsten Abschnitt erläutert.Method resolution is discussed in the next section.

Wichtig

Sie sollten jeden Parameterwert validieren, den Sie vom Client erhalten.You should validate any parameter value that you receive from the client. Die Runtime ersetzt einfach den Parameterwert in der SelectMethod -Eigenschaft.The runtime simply substitutes the parameter value into the SelectMethod property.

Methoden AuflösungMethod Resolution

Wenn die Select -Methode aufgerufen wird, werden die Datenfelder aus dem Daten gebundenen Steuer SelectParameters Element, die Parameter, die deklarativ im-Element erstellt wurden, und die Parameter, die Selecting im-Ereignishandler hinzugefügt wurden, zusammengeführt.When the Select method is called, the data fields from the data-bound control, the parameters that were created declaratively in the SelectParameters element, and the parameters that were added in the Selecting event handler are all merged. (Weitere Informationen finden Sie im vorherigen Abschnitt.) Das ObjectDataSource -Steuerelement versucht dann, eine aufzurufende Methode zu finden.(For more information, see the preceding section.) The ObjectDataSource control then attempts to find a method to call. Zuerst sucht Sie nach einer oder mehreren Methoden mit dem Namen, der in der SelectMethod -Eigenschaft angegeben ist.First, it looks for one or more methods with the name that is specified in the SelectMethod property. Wenn keine Entsprechung gefunden wird, InvalidOperationException wird eine Ausnahme ausgelöst.If no match is found, an InvalidOperationException exception is thrown. Wenn eine Übereinstimmung gefunden wird, sucht Sie nach übereinstimmenden Parameternamen.If a match is found, it then looks for matching parameter names. Angenommen, ein Typ, der von der-Eigenschaft angegeben TypeName wird, verfügt über zwei SelectARecordMethoden mit dem Namen.For example, suppose a type that is specified by the TypeName property has two methods named SelectARecord. Eine SelectARecord verfügt über einen Parameter ID,, und der SelectARecord andere verfügt über zwei Name Parameter Number: und.One SelectARecord has one parameter, ID, and the other SelectARecord has two parameters, Name and Number. Wenn die SelectParameters Auflistung nur einen Parameter mit dem IDNamen aufweist SelectARecord , wird die- ID Methode mit nur dem-Parameter aufgerufen.If the SelectParameters collection has only one parameter named ID, the SelectARecord method with just the ID parameter is called. Der Typ des Parameters wird beim Auflösen der Methoden nicht geprüft.The type of the parameter is not checked in resolving the methods. Die Reihenfolge der Parameter spielt keine Rolle.The order of the parameters does not matter.

Wenn die DataObjectTypeName -Eigenschaft festgelegt ist, wird die-Methode auf andere Weise aufgelöst.If the DataObjectTypeName property is set, the method is resolved in a different way. Der ObjectDataSource sucht nach einer Methode mit dem Namen, der in der SelectMethod -Eigenschaft angegeben ist, die einen Parameter des Typs annimmt, der in DataObjectTypeName der-Eigenschaft angegeben ist.The ObjectDataSource looks for a method with the name that is specified in the SelectMethod property that takes one parameter of the type that is specified in the DataObjectTypeName property. In diesem Fall spielt der Name des Parameters keine Rolle.In this case, the name of the parameter does not matter.

Gilt für:

Siehe auch