ObjectDataSource.SelectMethod Właściwość

Definicja

Pobiera lub ustawia nazwę metody lub funkcji wywoływanej przez ObjectDataSource kontrolkę w celu pobrania danych.

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 reprezentujący nazwę metody lub funkcji używanej ObjectDataSource do pobierania danych. Wartością domyślną jest ciąg pusty ("").

Przykłady

Poniższy przykład kodu pokazuje, jak kontrolka GridView może wyświetlać dane przy użyciu ObjectDataSource kontrolki na stronie Web Forms. Element ObjectDataSource identyfikuje częściowo lub w pełni kwalifikowaną nazwę klasy z jej TypeName właściwością oraz metodę wywoływaną w celu pobrania danych z jej SelectMethod właściwością. W czasie wykonywania obiekt jest tworzony, a metoda jest wywoływana przy użyciu odbicia. Kontrolka GridView wylicza przez IEnumerable kolekcję zwracaną przez metodę określoną przez SelectMethod właściwość i wyświetla dane.

<%@ 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 przedstawionych w poniższej tabeli, aby kontrolka ObjectDataSource mogła ją wywołać pomyślnie.

Typ zwracany Akcja
IEnumerable Element IEnumerable jest zwracany przez metodę Select .
DataTable Element jest DataView tworzony przy użyciu DataTable metody i zwracanej przez metodę Select .
DataView Element A DataView jest zwracany przez metodę Select .
DataSet Pierwszy DataTable element DataSet jest wyodrębniany, a DataView element jest tworzony i zwracany przez metodę Select .
Object Obiekt jest owinięty w kolekcji z jednym elementem IEnumerable i zwracany przez metodę Select .

Właściwość SelectMethod deleguje do SelectMethod właściwości obiektu skojarzonego ObjectDataSourceView z kontrolką ObjectDataSource .

Jeśli używasz 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 zwracanych przez metodę select.

Okres istnienia obiektu

Metoda, która jest identyfikowana przez SelectMethod właściwość, może być metodą wystąpienia lub static metodą (Shared w Visual Basic). Jeśli jest to metoda wystąpienia, obiekt biznesowy jest tworzony i niszczony za każdym razem, gdy wywoływana jest metoda określona SelectMethod przez właściwość. Zdarzenia i można obsługiwać ObjectCreated do pracy z obiektem biznesowym przed wywołaną metodą, która jest określona SelectMethod przez właściwość .ObjectCreating Można również obsłużyć ObjectDisposing zdarzenie wywoływane po wywołaniu SelectMethod metody określonej przez właściwość . Jeśli obiekt biznesowy implementuje IDisposable interfejs, Dispose metoda jest wywoływana przed zniszczeniem obiektu. Jeśli metoda to static (Shared w Visual Basic), obiekt biznesowy nigdy nie jest tworzony i nie można obsłużyć zdarzeń ObjectCreated, ObjectCreatingi ObjectDisposing .

Scalanie parametrów

Parametry są dodawane do kolekcji SelectParameters z następujących źródeł:

  • Deklaratywnie z SelectParameters elementu .

  • Programowo z Selecting metody .

Najpierw dodawane są parametry wymienione w elemecie SelectParameters . Po drugie parametry są programowo dodawane i usuwane w Selecting zdarzeniu, które występuje przed uruchomieniem Select metody. Metoda jest rozpoznawana po scaleniu parametrów. Rozwiązanie metody zostało omówione w następnej sekcji.

Ważne

Należy zweryfikować dowolną wartość parametru otrzymaną od klienta. Środowisko uruchomieniowe po prostu podstawi wartość parametru do SelectMethod właściwości .

Rozpoznawanie metody

Po wywołaniu Select metody pola danych z kontrolki powiązanej z danymi, parametry, które zostały utworzone deklaratywnie w elemecie SelectParameters , a parametry dodane w procedurze Selecting obsługi zdarzeń są scalane. (Aby uzyskać więcej informacji, zobacz poprzednią sekcję). Następnie kontrolka ObjectDataSource próbuje znaleźć metodę do wywołania. Najpierw wyszukuje jedną lub więcej metod o nazwie określonej we SelectMethod właściwości . Jeśli dopasowanie nie zostanie znalezione, InvalidOperationException zostanie zgłoszony wyjątek. Jeśli zostanie znalezione dopasowanie, szuka pasujących nazw parametrów. Załóżmy na przykład, że typ określony przez TypeName właściwość ma dwie metody o nazwie SelectARecord. Jeden z nich SelectARecord ma jeden parametr , IDa drugi SelectARecord ma dwa parametry: Name i Number. SelectParameters Jeśli kolekcja ma tylko jeden parametr o nazwie ID, wywoływana SelectARecord jest metoda z tylko parametrem ID . Typ parametru nie jest sprawdzany podczas rozpoznawania metod. Kolejność parametrów nie ma znaczenia.

DataObjectTypeName Jeśli właściwość jest ustawiona, metoda jest rozpoznawana w inny sposób. Szuka ObjectDataSource metody o nazwie określonej we SelectMethod właściwości , która przyjmuje jeden parametr typu określonego DataObjectTypeName we właściwości . W takim przypadku nazwa parametru nie ma znaczenia.

Dotyczy

Zobacz też