ObjectDataSource.SelectMethod Propiedad
Definición
Importante
Parte de la información hace referencia a la versión preliminar del producto, que puede haberse modificado sustancialmente antes de lanzar la versión definitiva. Microsoft no otorga ninguna garantía, explícita o implícita, con respecto a la información proporcionada aquí.
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.