ObjectDataSource.SelectMethod Propriedade
Definição
Importante
Algumas informações se referem a produtos de pré-lançamento que podem ser substancialmente modificados antes do lançamento. A Microsoft não oferece garantias, expressas ou implícitas, das informações aqui fornecidas.
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, ID
e o outro SelectARecord
tem dois parâmetros e Name
Number
. 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.