Поделиться через


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 . В этом случае имя параметра не имеет значения.

Применяется к

См. также раздел