다음을 통해 공유


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 의 이름을 나타내는 문자열입니다. 기본값은 빈 문자열("")입니다.

예제

다음 코드 예제에서는 컨트롤 Web Forms 페이지에서 컨트롤을 사용 하 여 데이터를 표시할 ObjectDataSource 수 있는 방법을 GridView 보여 줍니다. 속성 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 A DataView 는 메서드를 DataTable 사용하여 만들어지고 메서드에서 반환됩니다 Select .
DataView 메서드에서 A DataView 를 반환합니다 Select .
DataSet 첫 번째는 DataTableDataSet 추출되고 메서드에서 DataView 만들어지고 반환 Select 됩니다.
Object 개체는 하나의 요소 IEnumerable 컬렉션에 래핑되고 메서드에서 반환됩니다 Select .

SelectMethod 컨트롤과 SelectMethod 연결된 개체의 속성에 ObjectDataSourceView 속성이 위임됩니다ObjectDataSource.

클래스를 ObjectDataSource 사용하여 데이터를 삭제하거나 업데이트하는 경우 컬렉션 또는 UpdateParameters 컬렉션의 컨트롤에 대해 ObjectDataSource 구성된 매개 변수 이름이 select 메서드에서 DeleteParameters 반환되는 열 이름과 일치하는지 확인합니다.

개체 수명

속성으로 SelectMethod 식별되는 메서드는 인스턴스 메서드 또는 static (Shared Visual Basic의 경우) 메서드일 수 있습니다. 인스턴스 메서드인 경우 속성에 지정된 SelectMethod 메서드가 호출될 때마다 비즈니스 개체가 만들어지고 제거됩니다. 속성에 지정된 SelectMethod 메서드가 ObjectCreated 호출되기 전에 비즈니스 개체와 함께 작동하도록 이벤트 및 ObjectCreating 이벤트를 처리할 수 있습니다. 속성에 ObjectDisposing 지정된 메서드가 호출된 후 발생하는 이벤트를 처리할 SelectMethod 수도 있습니다. 비즈니스 개체가 인터페이스를 구현하는 IDisposable 경우 개체가 Dispose 제거되기 전에 메서드가 호출됩니다. Visual Basic에서 메서드가Sharedstatic 있으면 비즈니스 개체가 만들어지지 않으며 , ObjectCreatingObjectDisposing 이벤트를 처리ObjectCreated할 수 없습니다.

매개 변수 병합

매개 변수는 다음 원본에서 컬렉션에 추가 SelectParameters 됩니다.

  • 요소에서 선언적으로.SelectParameters

  • 메서드에서 프로그래밍 방식으로.Selecting

먼저 요소에 나열된 매개 변수가 SelectParameters 추가됩니다. 둘째, 메서드가 실행되기 Selecting 전에 Select 발생하는 이벤트에서 매개 변수가 프로그래밍 방식으로 추가되고 제거됩니다. 매개 변수가 병합된 후 메서드가 확인됩니다. 메서드 확인은 다음 섹션에서 설명합니다.

중요합니다

클라이언트에서 받은 매개 변수 값의 유효성을 검사해야 합니다. 런타임은 매개 변수 값을 속성으로 대체합니다 SelectMethod .

메서드 확인

메서드가 Select 호출되면 데이터 바인딩된 컨트롤의 데이터 필드, 요소에서 SelectParameters 선언적으로 생성된 매개 변수 및 이벤트 처리기에 추가 Selecting 된 매개 변수가 모두 병합됩니다. (자세한 내용은 이전 섹션을 참조하세요.) 그런 다음 컨트롤이 ObjectDataSource 호출할 메서드를 찾으려고 시도합니다. 먼저 속성에 지정된 이름을 가진 하나 이상의 메서드를 SelectMethod 찾습니다. 일치하는 항목이 없으면 예외가 InvalidOperationException throw됩니다. 일치 항목이 발견되면 일치하는 매개 변수 이름을 찾습니다. 예를 들어 속성에 지정된 TypeName 형식에 이름이 SelectARecord두 개의 메서드가 있다고 가정합니다. 하나는 SelectARecord 하나의 매개 변수를 가지며 다른 IDSelectARecord 매개 변수에는 두 개의 매개 변수가 Name 있습니다Number. 컬렉션에 SelectParameters 이름이 지정된 ID매개 변수가 하나뿐이 SelectARecord 면 매개 변수만 ID 있는 메서드가 호출됩니다. 메서드를 확인할 때 매개 변수 형식이 체크 인되지 않습니다. 매개 변수의 순서는 중요하지 않습니다.

속성이 DataObjectTypeName 설정되면 메서드가 다른 방식으로 확인됩니다. 속성 ObjectDataSource 에 지정된 형식의 매개 변수를 하나 사용하는 속성에 지정된 SelectMethod 이름을 가진 메서드를 DataObjectTypeName 찾습니다. 이 경우 매개 변수의 이름은 중요하지 않습니다.

적용 대상

추가 정보