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 ovládací prvek GridView může zobrazit data pomocí ovládacího prvku ObjectDataSource 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 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í Select parametr .
DataTable Vytvoří DataView se pomocí DataTable metody a vrátí ji Select metoda.
DataView Metoda vrátí Select chybu ADataView.
DataSet První DataTable z DataSet je extrahován a DataView je vytvořen a vrácen metodou Select .
Object Objekt je zabalen v kolekci s jedním prvkem IEnumerable a vrácen metodou Select .

Vlastnost SelectMethod deleguje vlastnost SelectMethod objektu ObjectDataSourceView , který je přidružen k ovládacímu ObjectDataSource 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ý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 pokaždé, když je volána metoda, 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, která je určena 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řidají 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 programově přidány a odebrány v Selecting události, ke které dochází 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 jakoukoli hodnotu parametru, kterou obdržíte od klienta. Modul runtime jednoduše nahradí hodnotu parametru do SelectMethod vlastnosti.

Řešení metody

Při zavolání Select metody se sloučí 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. (Další informace najdete v předchozí části.) Ovládací ObjectDataSource prvek se 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, vyvolá se InvalidOperationException výjimka. Pokud se najde shoda, vyhledá 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 ID, a druhý SelectARecord má dva parametry Name a Number. SelectParameters Pokud má kolekce pouze jeden parametr s názvem ID, SelectARecord volá se metoda pouze s parametrem ID . Typ parametru se při překladu metod nekontroluje. 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, 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é