Compartir a través de


ObjectDataSource.SelectMethod Propiedad

Definición

Obtiene o establece el nombre del método o función a los que invoca el control ObjectDataSource para recuperar datos.

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 propiedad

Cadena que representa el nombre del método o función que usa el objeto ObjectDataSource para recuperar datos. El valor predeterminado es una cadena vacía ("").

Ejemplos

En el ejemplo de código siguiente se muestra cómo un GridView control puede mostrar datos mediante un ObjectDataSource control en una página de Formularios Web Forms. ObjectDataSource identifica un nombre de clase parcial o completo con su TypeName propiedad y un método al que se llama para recuperar datos con su SelectMethod propiedad . En tiempo de ejecución, se crea el objeto y se llama al método mediante reflexión. El GridView control enumera a través de la IEnumerable colección devuelta por el método especificado por la SelectMethod propiedad y muestra los datos.

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

Comentarios

El método especificado puede tener cualquier firma de método, pero debe devolver uno de los tipos que se muestran en la tabla siguiente para que el ObjectDataSource control lo llame correctamente.

Tipo de valor devuelto Acción
IEnumerable El IEnumerable método devuelve .Select
DataTable DataView Se crea mediante y DataTable devuelve el Select método .
DataView El método devuelve Select un DataView .
DataSet El primero DataTable de DataSet se extrae y se crea y DataView devuelve mediante el Select método .
Object El objeto se ajusta en una colección de un elemento IEnumerable y la devuelve el Select método .

La SelectMethod propiedad delega a la SelectMethod propiedad del ObjectDataSourceView objeto asociado al ObjectDataSource control .

Cuando use la ObjectDataSource clase para eliminar o actualizar datos, asegúrese de que los nombres de parámetro configurados para el ObjectDataSource control de la DeleteParameters colección o UpdateParameters colección coinciden con los nombres de columna devueltos por el método select.

Duración de objetos

El método identificado por la SelectMethod propiedad puede ser un método de instancia o un static método (Shared en Visual Basic). Si es un método de instancia, se crea y destruye el objeto de negocio cada vez que se llama al método especificado por la SelectMethod propiedad . Puede controlar los ObjectCreated eventos y ObjectCreating para trabajar con el objeto de negocio antes de llamar al método especificado por la SelectMethod propiedad . También puede controlar el ObjectDisposing evento que se genera después de llamar al método especificado por la SelectMethod propiedad . Si el objeto de negocio implementa la IDisposable interfaz , se llama al Dispose método antes de que se destruya el objeto. Si el método es static (Shared en Visual Basic), el objeto de negocio nunca se crea y no se pueden controlar los ObjectCreatedeventos , ObjectCreatingy ObjectDisposing .

Combinación de parámetros

Los parámetros se agregan a la SelectParameters colección de estos orígenes:

  • Declarativamente desde el SelectParameters elemento .

  • Mediante programación desde el Selecting método .

En primer lugar, se agregan los parámetros enumerados en el SelectParameters elemento . En segundo lugar, los parámetros se agregan y quitan mediante programación en el Selecting evento , que se produce antes de que se ejecute el Select método . El método se resuelve después de combinar los parámetros. La resolución de métodos se describe en la sección siguiente.

Importante

Debe validar cualquier valor de parámetro que reciba del cliente. El tiempo de ejecución simplemente sustituye el valor del parámetro a la SelectMethod propiedad .

Resolución de métodos

Cuando se llama al Select método , los campos de datos del control enlazado a datos, los parámetros que se crearon mediante declaración en el SelectParameters elemento y los parámetros que se agregaron en el Selecting controlador de eventos se combinan. (Para obtener más información, consulte la sección anterior). A continuación, el ObjectDataSource control intenta buscar un método al que llamar. En primer lugar, busca uno o varios métodos con el nombre especificado en la SelectMethod propiedad . Si no se encuentra ninguna coincidencia, se produce una InvalidOperationException excepción. Si se encuentra una coincidencia, busca nombres de parámetro coincidentes. Por ejemplo, supongamos que un tipo especificado por la TypeName propiedad tiene dos métodos denominados SelectARecord. Uno SelectARecord tiene un parámetro, ID, y el otro SelectARecord tiene dos parámetros, Name y Number. Si la SelectParameters colección solo tiene un parámetro denominado ID, SelectARecord se llama al método con solo el ID parámetro . El tipo del parámetro no se comprueba al resolver los métodos. El orden de los parámetros no importa.

Si se establece la DataObjectTypeName propiedad , el método se resuelve de forma diferente. ObjectDataSource busca un método con el nombre especificado en la SelectMethod propiedad que toma un parámetro del tipo especificado en la DataObjectTypeName propiedad . En este caso, el nombre del parámetro no importa.

Se aplica a

Consulte también