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, která 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 Web Forms stránce. 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 vytvoří objekt a metoda se volá pomocí reflexe. Ovládací GridView prvek provede výčet prostřednictvím IEnumerable kolekce, která je vrácena metodou, která je určena 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ů uvedených v následující tabulce, ObjectDataSource aby ji ovládací prvek mohl úspěšně volat.

Návratový typ Akce
IEnumerable Metoda IEnumerable vrátí metodu Select .
DataTable Vytvoří DataView se pomocí DataTable metody a vrácenou metodou Select .
DataView Metoda DataView vrátí Select chybu .
DataSet První DataTable z je DataSet extrahována a DataView vytvoří se a vrátí metodou Select .
Object Objekt je zabalen do kolekce s jedním prvkem IEnumerable a vrácen metodou Select .

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

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ým metodou select.

Doba života objektu

Metoda identifikovaná SelectMethod vlastností může být metoda instance nebo static metoda (Shared v jazyce Visual Basic). Pokud se jedná o metodu instance, obchodní objekt je vytvořen a zničen při každém zavolání metody, která je určena SelectMethod vlastností. Můžete zpracovat ObjectCreated události a ObjectCreating pro práci s obchodním objektem před zavoláním metody, která je určena SelectMethod vlastností. Můžete také zpracovat ObjectDisposing událost, která je vyvolána po zavolání metody určené SelectMethod vlastností . 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 se nikdy nevytvořil a nelze zpracovat ObjectCreatedudálosti , ObjectCreatinga ObjectDisposing .

Slučování parametrů

Parametry se do SelectParameters kolekce přidávají z těchto zdrojů:

  • Deklarativně z elementu SelectParameters .

  • Programově z Selecting metody .

Nejprve se přidají parametry uvedené v elementu SelectParameters . Za druhé se parametry programově přidávají a odebírají 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í metody je popsáno v další části.

Důležité

Měli byste ověřit všechny hodnoty parametrů, které obdržíte od klienta. Modul runtime jednoduše nahradí hodnotu parametru do SelectMethod vlastnosti .

Řešení metody

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

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

Platí pro

Viz také