Sdílet prostřednictvím


ObjectDataSource.SelectMethod Vlastnost

Definice

Získá nebo nastaví název metody nebo funkce, kterou ObjectDataSource ovládací prvek vyvolá k načtení dat.

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

Hodnota vlastnosti

Řetězec, který představuje název metody nebo funkce, kterou ObjectDataSource používá k načtení dat. Výchozí hodnota je prázdný řetězec ("").

Příklady

Následující příklad kódu ukazuje, jak GridView ovládací prvek může zobrazit data pomocí ObjectDataSource ovládacího prvku na stránce Webové formuláře. Identifikuje ObjectDataSource částečně nebo plně kvalifikovaný název třídy s jeho TypeName vlastností a metodu, která je volána k načtení dat s jeho SelectMethod vlastností. Za běhu se objekt vytvoří a metoda se volá pomocí reflexe. Ovládací GridView prvek vytvoří výčet kolekcí IEnumerable vrácenou metodou určenou SelectMethod vlastností a zobrazí 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>

Poznámky

Zadaná metoda může mít libovolný podpis metody, ale musí vrátit jeden z typů zobrazených v následující tabulce, ObjectDataSource aby ovládací prvek mohl úspěšně volat.

Návratový typ Action
IEnumerable Metoda IEnumerable je vrácena Select .
DataTable Vytvoří se DataView pomocí DataTable metody a vrátí ji Select .
DataView Metoda vrátí Select ADataView.
DataSet První DataTable z nich DataSet se extrahuje a DataView vytvoří se a vrátí metodou Select .
Object Objekt je zabalen v kolekci s jedním prvkem IEnumerable a vrácen metodou Select .

Vlastnost SelectMethod deleguje na SelectMethod vlastnost objektu ObjectDataSourceView , který je přidružen k ObjectDataSource ovládacího prvku.

Pokud používáte ObjectDataSource třídu k odstranění nebo aktualizaci dat, ujistěte se, že názvy parametrů nakonfigurované pro ObjectDataSource ovládací prvek v DeleteParameters kolekci nebo UpdateParameters kolekci odpovídají názvům sloupců vrácených metodou select.

Životnost objektu

Metoda, která je identifikována SelectMethod vlastností může být instance metoda nebo static (Shared v jazyce Visual Basic). Pokud se jedná o metodu instance, obchodní objekt je vytvořen a zničen pokaždé, když je volána metoda, která je určena SelectMethod vlastností. Můžete zpracovat ObjectCreated události pro ObjectCreating práci s obchodním objektem před metodou, která je určena SelectMethod vlastností je volána. Můžete také zpracovat ObjectDisposing událost, která je vyvolána po metodě, která je určena SelectMethod vlastností je volána. Pokud obchodní objekt implementuje IDisposable rozhraní, Dispose je volána metoda před zničením objektu. Pokud je static metoda (Shared v jazyce Visual Basic), obchodní objekt není nikdy vytvořen a nelze zpracovat ObjectCreated, ObjectCreatinga ObjectDisposing události.

Slučování parametrů

Parametry se přidají do SelectParameters kolekce z těchto zdrojů:

  • Deklarativní z elementu SelectParameters .

  • Programově z Selecting metody.

Nejprve se přidají parametry uvedené v elementu SelectParameters . Za druhé, parametry jsou přidány a odebrány programově v Selecting události, která nastane před spuštěním Select metody. Metoda je vyřešena po sloučení parametrů. Řešení metod je popsáno v další části.

Důležité

Měli byste ověřit libovolnou hodnotu parametru, kterou obdržíte od klienta. Modul runtime jednoduše nahradí hodnotu parametru vlastností SelectMethod .

Řešení metody

Při zavolání Select metody jsou datová pole z ovládacího prvku vázaného na data, parametry, které byly vytvořeny deklarativní v elementu SelectParameters , a parametry přidané do Selecting obslužné rutiny události jsou sloučeny. (Další informace najdete v předchozí části.) Ovládací ObjectDataSource prvek se pak pokusí najít metodu volání. Nejprve vyhledá jednu nebo více metod s názvem zadaným SelectMethod ve vlastnosti. Pokud se nenajde žádná shoda, vyvolá InvalidOperationException se výjimka. Pokud se najde shoda, vyhledá odpovídající názvy parametrů. Předpokládejme například, že typ, který je určen vlastností TypeName má dvě metody s názvem SelectARecord. Jeden SelectARecord má jeden parametr a IDdruhý SelectARecord má dva parametry a NameNumber. SelectParameters Pokud kolekce má pouze jeden parametr s názvem ID, SelectARecord metoda s pouze ID parametr je volána. Typ parametru není vrácen se změnami při překladu metod. Pořadí parametrů nezáleží.

DataObjectTypeName Pokud je vlastnost nastavena, metoda je vyřešena jiným způsobem. Vyhledá ObjectDataSource metodu s názvem zadaným ve SelectMethod vlastnosti, která přebírá jeden parametr typu, který je zadán v DataObjectTypeName vlastnosti. V tomto případě nezáleží na názvu parametru.

Platí pro

Viz také