Udostępnij za pośrednictwem


ObjectDataSource.SelectMethod Właściwość

Definicja

Pobiera lub ustawia nazwę metody lub funkcji wywoływanej ObjectDataSource przez 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

Poniższy przykład kodu pokazuje, jak kontrolka GridView może wyświetlać dane przy użyciu ObjectDataSource kontrolki na stronie formularzy sieci Web. Element ObjectDataSource identyfikuje częściowo lub w pełni kwalifikowaną nazwę klasy z właściwością TypeName 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ą pomyślnie wywołać.

Typ zwracany Akcja
IEnumerable Element IEnumerable jest zwracany przez metodę Select .
DataTable Element A DataView jest tworzony przy użyciu DataTable metody i zwracanej przez metodę Select .
DataView Element A DataView jest zwracany przez metodę Select .
DataSet Pierwszy DataTable z nich jest wyodrębniany, a DataView element jest tworzony i zwracany przez metodę SelectDataSet .
Object Obiekt jest opakowany w kolekcji jednego elementu 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 metoda określona przez SelectMethod właściwość jest wywoływana. Zdarzenia i można obsługiwaćObjectCreated, aby pracować z obiektem biznesowym, zanim zostanie wywołana metoda określona SelectMethod przez właściwość.ObjectCreating Można również obsłużyć ObjectDisposing zdarzenie, które jest wywoływane po wywołaniu metody określonej przez SelectMethod 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ć ObjectCreatedzdarzeń , 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 zostaną dodane parametry wymienione w SelectParameters elemecie . 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 zastępuje wartość parametru SelectMethod do właściwości .

Rozwiązanie metody

Po wywołaniu Select metody pola danych z kontrolki powiązanej z danymi, parametry utworzone deklaratywnie w SelectParameters elemecie i 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 co najmniej jedną metodę o nazwie określonej we SelectMethod właściwości. Jeśli nie zostanie znalezione dopasowanie, 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, SelectARecord metoda z tylko parametrem jest wywoływanaID. 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ż