ObjectDataSource.SelectMethod Propriedade

Definição

Obtém ou define o nome do método ou da função invocada pelo controle ObjectDataSource para recuperar dados.

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

Valor da propriedade

Uma cadeia de caracteres que representa o nome do método ou da função usado pelo ObjectDataSource para recuperar dados. O padrão é uma cadeia de caracteres vazia ("").

Exemplos

O exemplo de código a seguir demonstra como um GridView controle pode exibir dados usando um ObjectDataSource controle em uma página do Web Forms. O ObjectDataSource identifica um nome de classe parcial ou totalmente qualificado com sua TypeName propriedade e um método chamado para recuperar dados com sua SelectMethod propriedade. Em tempo de execução, o objeto é criado e o método é chamado usando reflexão. O GridView controle enumera por meio da IEnumerable coleção retornada pelo método especificado pela SelectMethod propriedade e exibe os dados.

<%@ 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>

Comentários

O método especificado pode ter qualquer assinatura de método, mas deve retornar um dos tipos mostrados na tabela a seguir para que o controle a ObjectDataSource chame com êxito.

Tipo de retorno Ação
IEnumerable O IEnumerable é retornado pelo Select método .
DataTable Um DataView é criado usando o DataTable e retornado pelo Select método .
DataView Um DataView é retornado pelo Select método .
DataSet O primeiro DataTable do DataSet é extraído e um DataView é criado e retornado pelo Select método .
Object O objeto é encapsulado em uma coleção de um elemento IEnumerable e retornado pelo Select método .

A SelectMethod propriedade delega à SelectMethod propriedade do ObjectDataSourceView objeto associado ao ObjectDataSource controle .

Ao usar a ObjectDataSource classe para excluir ou atualizar dados, verifique se os nomes de parâmetro configurados para o ObjectDataSource controle na DeleteParameters coleção ou UpdateParameters coleção correspondem aos nomes de coluna retornados pelo método select.

Tempo de vida do objeto

O método identificado pela SelectMethod propriedade pode ser um método de instância ou um static método (Shared no Visual Basic). Se for um método de instância, o objeto de negócios será criado e destruído sempre que o método especificado pela SelectMethod propriedade for chamado. Você pode manipular os ObjectCreated eventos e ObjectCreating para trabalhar com o objeto de negócios antes que o método especificado pela SelectMethod propriedade seja chamado. Você também pode lidar com o ObjectDisposing evento gerado após o método especificado pela SelectMethod propriedade ser chamado. Se o objeto de negócios implementar a IDisposable interface, o Dispose método será chamado antes que o objeto seja destruído. Se o método for static (Shared no Visual Basic), o objeto de negócios nunca será criado e você não poderá manipular os ObjectCreatedeventos , ObjectCreatinge ObjectDisposing .

Mesclagem de parâmetro

Os parâmetros são adicionados à coleção a SelectParameters partir dessas fontes:

  • Declarativamente do SelectParameters elemento .

  • Programaticamente do Selecting método .

Primeiro, os parâmetros listados no SelectParameters elemento são adicionados. Em segundo lugar, os parâmetros são adicionados e removidos programaticamente no evento , que Selecting ocorre antes da execução do Select método. O método é resolvido depois que os parâmetros são mesclados. A resolução do método é discutida na próxima seção.

Importante

Você deve validar qualquer valor de parâmetro recebido do cliente. O runtime simplesmente substitui o valor do parâmetro na SelectMethod propriedade .

Resolução de método

Quando o Select método é chamado, os campos de dados do controle associado a dados, os parâmetros que foram criados declarativamente no SelectParameters elemento e os parâmetros que foram adicionados no Selecting manipulador de eventos são todos mesclados. (Para obter mais informações, consulte a seção anterior.) Em ObjectDataSource seguida, o controle tenta encontrar um método para chamar. Primeiro, ele procura um ou mais métodos com o nome especificado na SelectMethod propriedade . Se nenhuma correspondência for encontrada, uma exceção InvalidOperationException será gerada. Se uma correspondência for encontrada, ela procurará nomes de parâmetro correspondentes. Por exemplo, suponha que um tipo especificado pela TypeName propriedade tenha dois métodos chamados SelectARecord. Um SelectARecord tem um parâmetro, IDe o outro SelectARecord tem dois parâmetros e NameNumber. Se a SelectParameters coleção tiver apenas um parâmetro chamado ID, o SelectARecord método com apenas o ID parâmetro será chamado. O tipo do parâmetro não é verificado na resolução dos métodos. A ordem dos parâmetros não importa.

Se a DataObjectTypeName propriedade estiver definida, o método será resolvido de uma maneira diferente. O ObjectDataSource procura um método com o nome especificado na SelectMethod propriedade que usa um parâmetro do tipo especificado na DataObjectTypeName propriedade . Nesse caso, o nome do parâmetro não importa.

Aplica-se a

Confira também