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

Ciąg reprezentujący nazwę metody lub funkcji używanej ObjectDataSource do pobierania danych. Wartością domyślną jest ciąg pusty ("").

Przykłady

W poniższym przykładzie kodu pokazano, 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 za pośrednictwem IEnumerable kolekcji zwracanej 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 (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, i .ObjectDisposingObjectCreating

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ż