ObjectDataSource.SelectMethod Propriedade

Definição

Obtém ou define o nome do método ou função que o ObjectDataSource controlo invoca 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 de Propriedade

Uma cadeia que representa o nome do método ou função que o ObjectDataSource utilizador utiliza para recuperar dados. O padrão é uma cadeia vazia ("").

Exemplos

O exemplo de código seguinte demonstra como um GridView controlo pode mostrar dados usando um ObjectDataSource controlo numa página Web Forms. Identifica ObjectDataSource um nome de classe parcial ou totalmente qualificado com a sua TypeName propriedade e um método que é chamado para recuperar dados com a sua SelectMethod propriedade. Em tempo de execução, o objeto é criado e o método é chamado usando reflexão. O GridView controlo enumera através da IEnumerable coleção que é devolvida pelo método especificado pela SelectMethod propriedade, e apresenta 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>

Observações

O método especificado pode ter qualquer assinatura de método, mas deve devolver um dos tipos mostrados na tabela seguinte para que o ObjectDataSource controlo o chame com sucesso.

Tipo de retorno Ação
IEnumerable O IEnumerable é devolvido pelo Select método.
DataTable A é criado usando o DataTable e devolvido DataView pelo Select método.
DataView A DataView é devolvido pelo Select método.
DataSet O primeiro DataTable dos DataSet é extraído, e a DataView é criado e devolvido pelo Select método.
Object O objeto é envolto numa coleção de um elemento IEnumerable e devolvido pelo Select método.

A SelectMethod propriedade delega à SelectMethod propriedade do ObjectDataSourceView objeto associada ao ObjectDataSource controlo.

Quando usar a ObjectDataSource classe para eliminar ou atualizar dados, certifique-se de que os nomes dos parâmetros configurados para o ObjectDataSource controlo na DeleteParameters coleção ou UpdateParameters coleção correspondem aos nomes das colunas retornados pelo método select.

Tempo de vida do objeto

O método identificado pela propriedade SelectMethod pode ser um método de instância ou um método static (Shared em Visual Basic). Se for um método de instância, o objeto de negócio é criado e destruído cada vez que o método especificado pela SelectMethod propriedade é chamado. Pode gerir os ObjectCreated eventos e ObjectCreating para trabalhar com o objeto de negócio antes de ser chamado o método especificado pela SelectMethod propriedade. Também pode tratar do ObjectDisposing evento que é levantado após o método especificado pela SelectMethod propriedade ser chamado. Se o objeto de negócio implementar a IDisposable interface, o Dispose método é chamado antes de o objeto ser destruído. Se o método for static (Shared em Visual Basic), o objeto de negócio nunca é criado e não pode gerir os eventos ObjectCreated, ObjectCreating e ObjectDisposing.

Fusão de parâmetros

Parâmetros são adicionados à SelectParameters coleção a partir destas fontes:

  • Declarativamente contra o SelectParameters elemento.

  • Programáticamente a partir 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 Selecting evento, que ocorre antes da execução do Select método. O método é resolvido após a fusão dos parâmetros. A resolução do método é discutida na secção seguinte.

Importante

Deve validar qualquer valor de parâmetro que receba do cliente. O tempo de execução simplesmente substitui o valor do parâmetro pela SelectMethod propriedade.

Resolução do Método

Quando o Select método é chamado, os campos de dados do controlo data-bound, os parâmetros criados declarativamente no SelectParameters elemento e os parâmetros adicionados no Selecting handler de eventos são todos fundidos. (Para mais informações, consulte a secção anterior.) O ObjectDataSource controlo tenta então encontrar um método para chamar. Primeiro, procura um ou mais métodos com o nome especificado na SelectMethod propriedade. Se não for encontrada correspondência, é lançada uma InvalidOperationException exceção. Se for encontrada uma correspondência, procura então nomes de parâmetros correspondentes. Por exemplo, suponha que um tipo especificado pela TypeName propriedade tem dois métodos chamados SelectARecord. Um SelectARecord tem um parâmetro, ID, e o outro SelectARecord tem dois parâmetros, Name e Number. Se a SelectParameters coleção tiver apenas um parâmetro chamado ID, o SelectARecord método com apenas o ID parâmetro é 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 for definida, o método é resolvido de forma diferente. Procura ObjectDataSource um método com o nome especificado na SelectMethod propriedade que toma um parâmetro do tipo especificado na DataObjectTypeName propriedade. Neste caso, o nome do parâmetro não importa.

Aplica-se a

Ver também