ObjectDataSource.SelectMethod Właściwość

Definicja

Pobiera lub ustawia nazwę metody lub funkcji, która ObjectDataSource wywołuje formant w celu pobrania danych.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

Wartość właściwości

String

Ciąg, który reprezentuje nazwę metody lub funkcji, której ObjectDataSource używa do pobierania danych.A string that represents the name of the method or function that the ObjectDataSource uses to retrieve data. Wartością domyślną jest ciąg pusty ("").The default is an empty string ("").

Przykłady

Poniższy przykład kodu demonstruje, jak GridView kontrolka może wyświetlać dane przy użyciu ObjectDataSource kontrolki na stronie formularzy sieci Web.The following code example demonstrates how a GridView control can display data using an ObjectDataSource control on a Web Forms page. ObjectDataSourceIdentyfikuje częściowo lub w pełni kwalifikowaną nazwę klasy z TypeName właściwością i metodę, która jest wywoływana, aby pobrać dane z SelectMethod właściwością.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. W czasie wykonywania obiekt jest tworzony, a metoda jest wywoływana przy użyciu odbicia.At run time, the object is created and the method is called using reflection. GridViewKontrolka wylicza do IEnumerable kolekcji, która jest zwracana przez metodę określoną przez SelectMethod Właściwość, i wyświetla dane.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>

Uwagi

Określona metoda może mieć dowolny podpis metody, ale musi zwrócić jeden z typów pokazanych w poniższej tabeli, ObjectDataSource Aby pomyślnie wywołać formant.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.

Typ zwracanyReturn type AkcjaAction
IEnumerable IEnumerableJest zwracany przez Select metodę.The IEnumerable is returned by the Select method.
DataTable Obiekt DataView jest tworzony przy użyciu DataTable i zwracany przez Select metodę.A DataView is created using the DataTable and returned by the Select method.
DataView Element DataView jest zwracany przez Select metodę.A DataView is returned by the Select method.
DataSet Pierwszy DataTable z nich DataSet jest wyodrębniany i DataView jest tworzony i zwracany przez Select metodę.The first DataTable of the DataSet is extracted, and a DataView is created and returned by the Select method.
Object Obiekt jest opakowany w jednoelementowej IEnumerable kolekcji i zwracany przez Select metodę.The object is wrapped in a one-element IEnumerable collection and returned by the Select method.

SelectMethodWłaściwość delegowana do SelectMethod właściwości ObjectDataSourceView obiektu, który jest skojarzony z ObjectDataSource formantem.The SelectMethod property delegates to the SelectMethod property of the ObjectDataSourceView object that is associated with the ObjectDataSource control.

W przypadku używania ObjectDataSource klasy do usuwania lub aktualizowania danych upewnij się, że nazwy parametrów skonfigurowane dla ObjectDataSource kontrolki w DeleteParameters kolekcji lub UpdateParameters kolekcji są zgodne z nazwami kolumn, które są zwracane przez metodę select.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.

Okres istnienia obiektuObject Lifetime

Metodą identyfikowaną przez SelectMethod Właściwość może być metoda wystąpienia lub static Shared metoda (w Visual Basic).The method that is identified by the SelectMethod property can be an instance method or a static (Shared in Visual Basic) method. Jeśli jest to metoda wystąpienia, obiekt biznesowy jest tworzony i niszczony za każdym razem, gdy wywoływana jest metoda określona przez SelectMethod Właściwość.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. Zdarzenia i można obsługiwać ObjectCreated ObjectCreating przy użyciu obiektu biznesowego przed wywołaniem metody określonej przez SelectMethod Właściwość.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. Można także obsłużyć ObjectDisposing zdarzenie wywoływane po wywołaniu metody określonej przez SelectMethod Właściwość.You can also handle the ObjectDisposing event that is raised after the method that is specified by the SelectMethod property is called. Jeśli obiekt biznesowy implementuje IDisposable interfejs, Dispose Metoda jest wywoływana przed zniszczeniem obiektu.If the business object implements the IDisposable interface, the Dispose method is called before the object is destroyed. Jeśli metoda jest static ( Shared w Visual Basic), obiekt biznesowy nigdy nie jest tworzony i nie można obsłużyć ObjectCreated ObjectCreating zdarzeń, i ObjectDisposing .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.

Scalanie parametrówParameter Merging

Parametry są dodawane do SelectParameters kolekcji z następujących źródeł:Parameters are added to the SelectParameters collection from these sources:

  • Deklaratywnie z SelectParameters elementu.Declaratively from the SelectParameters element.

  • Programowo przy użyciu Selecting metody.Programmatically from the Selecting method.

Najpierw parametry wymienione w SelectParameters elemencie są dodawane.First, the parameters listed in the SelectParameters element are added. Po drugie, parametry są programowo dodawane i usuwane w Selecting zdarzeniu, które występuje przed Select uruchomieniem metody.Second, parameters are programmatically added and removed in the Selecting event, which occurs before the Select method is run. Metoda jest rozpoznawana po scaleniu parametrów.The method is resolved after the parameters are merged. Rozwiązanie metody zostało omówione w następnej sekcji.Method resolution is discussed in the next section.

Ważne

Należy sprawdzić poprawność wszystkich wartości parametrów otrzymywanych od klienta.You should validate any parameter value that you receive from the client. Środowisko uruchomieniowe po prostu zastępuje wartość parametru wartością SelectMethod właściwości.The runtime simply substitutes the parameter value into the SelectMethod property.

Rozwiązanie metodyMethod Resolution

Gdy Select Metoda jest wywoływana, pola danych z kontrolki powiązanej z danymi, parametry, które zostały utworzone w sposób deklaratywny w SelectParameters elemencie i parametry, które zostały dodane w programie Selecting obsługi zdarzeń są scalone.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. (Aby uzyskać więcej informacji, zobacz poprzednią sekcję). ObjectDataSource Następnie formant próbuje znaleźć metodę do wywołania.(For more information, see the preceding section.) The ObjectDataSource control then attempts to find a method to call. Najpierw szuka jednej lub więcej metod o nazwie określonej we SelectMethod właściwości.First, it looks for one or more methods with the name that is specified in the SelectMethod property. Jeśli nie zostanie znalezione dopasowanie, InvalidOperationException zostanie zgłoszony wyjątek.If no match is found, an InvalidOperationException exception is thrown. W przypadku znalezienia dopasowania szuka pasujących nazw parametrów.If a match is found, it then looks for matching parameter names. Na przykład załóżmy, że typ, który jest określony przez TypeName Właściwość, ma dwie metody o nazwie SelectARecord .For example, suppose a type that is specified by the TypeName property has two methods named SelectARecord. Jeden SelectARecord ma jeden parametr, ID , a drugi SelectARecord ma dwa parametry, Name i Number .One SelectARecord has one parameter, ID, and the other SelectARecord has two parameters, Name and Number. Jeśli SelectParameters Kolekcja ma tylko jeden parametr o nazwie ID , SelectARecord wywoływana jest metoda z tylko ID parametrem.If the SelectParameters collection has only one parameter named ID, the SelectARecord method with just the ID parameter is called. Typ parametru nie jest sprawdzany w rozpoznawaniu metod.The type of the parameter is not checked in resolving the methods. Kolejność parametrów nie ma znaczenia.The order of the parameters does not matter.

Jeśli DataObjectTypeName Właściwość jest ustawiona, metoda jest rozpoznawana w inny sposób.If the DataObjectTypeName property is set, the method is resolved in a different way. ObjectDataSourceWyszukuje metodę o nazwie określonej we SelectMethod właściwości, która przyjmuje jeden parametr typu, który jest określony we DataObjectTypeName właściwości.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. W takim przypadku nazwa parametru nie ma znaczenia.In this case, the name of the parameter does not matter.

Dotyczy

Zobacz też