ObjectDataSource.SelectMethod Vlastnost
Definice
Důležité
Některé informace platí pro předběžně vydaný produkt, který se může zásadně změnit, než ho výrobce nebo autor vydá. Microsoft neposkytuje žádné záruky, výslovné ani předpokládané, týkající se zde uváděných informací.
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.