ObjectDataSource.SelectMethod Свойство
Определение
Важно!
Некоторые сведения относятся к предварительной версии продукта, в которую до выпуска могут быть внесены существенные изменения. Майкрософт не предоставляет никаких гарантий, явных или подразумеваемых, относительно приведенных здесь сведений.
Возвращает или задает имя метода или функции, вызываемой ObjectDataSource элементом управления для получения данных.
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
Значение свойства
Строка, представляющая имя метода или функции, которая ObjectDataSource используется для извлечения данных. Значение по умолчанию — пустая строка ("").
Примеры
В следующем примере кода показано, как GridView элемент управления может отображать данные с помощью ObjectDataSource элемента управления на странице веб-форм. Определяет ObjectDataSource частично или полное имя класса со своим TypeName свойством и методом, который вызывается для получения данных с его SelectMethod свойством. Во время выполнения объект создается, а метод вызывается с помощью отражения. Элемент GridView управления перечисляет IEnumerable коллекцию, возвращаемую методом, заданным SelectMethod свойством, и отображает данные.
<%@ 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>
Комментарии
Указанный метод может иметь любую сигнатуру метода, но он должен вернуть один из типов, показанных в следующей таблице, чтобы ObjectDataSource элемент управления успешно вызывал его.
| Тип возвращаемого значения | Действие |
|---|---|
| IEnumerable | Возвращается IEnumerable методом Select . |
| DataTable | Создается DataView с помощью DataTable метода и возвращается Select . |
| DataView | Возвращается DataView методом Select . |
| DataSet | Первый DataTable из DataSet извлекается, и DataView создается и возвращается методом Select . |
| Object | Объект упаковывается в коллекцию одного элемента IEnumerable и возвращается методом Select . |
Свойство SelectMethod делегирует SelectMethod свойству объекта, связанного ObjectDataSourceView с элементом ObjectDataSource управления.
При использовании ObjectDataSource класса для удаления или обновления данных убедитесь, что имена параметров, настроенные для ObjectDataSource элемента управления в DeleteParameters коллекции или UpdateParameters коллекции, соответствуют именам столбцов, возвращаемым методом select.
Время существования объекта
Метод, который определяется свойством SelectMethod , может быть методом экземпляра или static методом (Shared в Visual Basic). Если это метод экземпляра, бизнес-объект создается и уничтожается каждый раз при вызове метода, указанного свойством SelectMethod . Перед вызовом метода, указанного SelectMethod свойством, можно обрабатывать ObjectCreated и ObjectCreating события для работы с бизнес-объектом. Вы также можете обрабатывать ObjectDisposing событие, которое вызывается после вызова метода, указанного SelectMethod свойством. Если бизнес-объект реализует IDisposable интерфейс, Dispose метод вызывается перед уничтожением объекта. Если метод имеет значение static (Sharedв Visual Basic), бизнес-объект никогда не создается и не может обрабатывать ObjectCreatedObjectCreatingсобытия и ObjectDisposing события.
Слияние параметров
Параметры добавляются в коллекцию SelectParameters из следующих источников:
Декларативно из
SelectParametersэлемента.Программно из
Selectingметода.
Во-первых, добавляются параметры, перечисленные в элементе SelectParameters . Во-вторых, параметры добавляются и удаляются программным способом в Selecting событие, которое возникает перед запуском Select метода. Метод разрешается после объединения параметров. Разрешение методов рассматривается в следующем разделе.
Это важно
Необходимо проверить любое значение параметра, полученное от клиента. Среда выполнения просто заменяет значение параметра свойством SelectMethod .
Разрешение метода
Select При вызове метода поля данных из элемента управления с привязкой к данным, параметры, созданные декларативно в элементе, а параметры, добавленные в SelectParametersSelecting обработчик событий, объединяются. (Дополнительные сведения см. в предыдущем разделе.) Затем ObjectDataSource элемент управления пытается найти метод для вызова. Сначала он ищет один или несколько методов с именем, указанным в свойстве SelectMethod . Если совпадение не найдено, InvalidOperationException создается исключение. Если совпадение найдено, он ищет соответствующие имена параметров. Например, предположим, что тип, указанный свойствомTypeName, имеет два метода.SelectARecord Один SelectARecord имеет один параметр, IDа другой SelectARecord имеет два параметра и NameNumber. Если в SelectParameters коллекции есть только один параметр с именем ID, SelectARecord метод с только параметром ID вызывается. Тип параметра не проверяется при разрешении методов. Порядок параметров не имеет значения.
DataObjectTypeName Если свойство задано, метод разрешается по-другому. Поиск ObjectDataSource метода с именем, указанным в SelectMethod свойстве, который принимает один параметр типа, указанного в свойстве DataObjectTypeName . В этом случае имя параметра не имеет значения.