ObjectDataSource.SelectMethod Właściwość
Definicja
Ważne
Niektóre informacje odnoszą się do produktu w wersji wstępnej, który może zostać znacząco zmodyfikowany przed wydaniem. Firma Microsoft nie udziela żadnych gwarancji, jawnych lub domniemanych, w odniesieniu do informacji podanych w tym miejscu.
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 , ID
a 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.