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 . События и ObjectCreating можно обрабатывать ObjectCreated для работы с бизнес-объектом до вызова метода, указанного свойством SelectMethod . Можно также обработать ObjectDisposing событие, которое возникает после вызова метода, указанного свойством SelectMethod . Если бизнес-объект реализует IDisposable интерфейс , Dispose метод вызывается перед уничтожением объекта. Если метод имеет значение static
(Shared
в Visual Basic), бизнес-объект никогда не создается и вы не можете обработать ObjectCreatedсобытия , ObjectCreatingи ObjectDisposing .
Слияние параметров
Параметры добавляются в коллекцию SelectParameters из следующих источников:
Декларативно из
SelectParameters
элемента .Программным способом из
Selecting
метода .
Сначала добавляются параметры, перечисленные SelectParameters
в элементе . Во-вторых, параметры добавляются и удаляются программным способом в событии Selecting , которое происходит перед запуском Select метода . Метод разрешается после объединения параметров. Разрешение метода рассматривается в следующем разделе.
Важно!
Необходимо проверить любое значение параметра, полученное от клиента. Среда выполнения просто подставляет значение параметра в SelectMethod свойство .
Разрешение метода
При вызове Select метода объединяются поля данных из элемента управления с привязкой к данным, параметры, созданные декларативно в SelectParameters
элементе , и параметры, добавленные в Selecting обработчик событий. (Дополнительные сведения см. в предыдущем разделе.) Затем ObjectDataSource элемент управления пытается найти метод для вызова. Сначала выполняется поиск одного или нескольких методов с именем, указанным в свойстве SelectMethod . Если совпадение не найдено, InvalidOperationException возникает исключение. При обнаружении совпадения выполняется поиск соответствующих имен параметров. Например, предположим, что тип, указанный свойством TypeName , имеет два метода с именем SelectARecord
. Один SelectARecord
из них имеет один параметр , ID
а другой SelectARecord
— два параметра, Name
и Number
. Если коллекция SelectParameters имеет только один параметр с именем ID
, SelectARecord
вызывается метод только с параметром ID
. Тип параметра не проверяется при разрешении методов. Порядок параметров не имеет значения.
DataObjectTypeName Если свойство задано, метод разрешается другим способом. Выполняет ObjectDataSource поиск метода с именем, указанным в свойстве SelectMethod , которое принимает один параметр типа, указанного в свойстве DataObjectTypeName . В этом случае имя параметра не имеет значения.