Este tema aún no ha recibido ninguna valoración - Valorar este tema

ObjectDataSource (Clase)

Representa un objeto comercial que proporciona datos a los controles enlazados a datos en las arquitecturas de aplicaciones Web multi-nivel.

System.Object
  System.Web.UI.Control
    System.Web.UI.DataSourceControl
      System.Web.UI.WebControls.ObjectDataSource

Espacio de nombres:  System.Web.UI.WebControls
Ensamblado:  System.Web (en System.Web.dll)
[ToolboxBitmapAttribute(typeof(ObjectDataSource))]
public class ObjectDataSource : DataSourceControl
<asp:ObjectDataSource />

El tipo ObjectDataSource expone los siguientes miembros.

  Nombre Descripción
Método público ObjectDataSource() Inicializa una nueva instancia de la clase ObjectDataSource.
Método público ObjectDataSource(String, String) Inicializa una instancia nueva de la clase ObjectDataSource con el nombre del tipo y el nombre del método de recuperación de datos especificados.
Arriba
  Nombre Descripción
Propiedad protegida Adapter Obtiene el adaptador específico del explorador para el control. (Se hereda de Control).
Propiedad pública AppRelativeTemplateSourceDirectory Obtiene o establece el directorio virtual relativo a la aplicación del objeto Page o el objeto UserControl que contiene este control. (Se hereda de Control).
Propiedad pública BindingContainer Infraestructura. Obtiene el control que contiene el enlace de datos de este control. (Se hereda de Control).
Propiedad pública CacheDuration Obtiene o establece el período de tiempo, en segundos, que el control de origen de datos almacena en memoria caché los datos recuperados por la propiedad SelectMethod.
Propiedad pública CacheExpirationPolicy Obtiene o establece el comportamiento de expiración de la memoria caché que, combinado con la duración, describe el comportamiento de almacenamiento en caché que usa el control de origen de datos.
Propiedad pública CacheKeyDependency Obtiene o establece una dependencia de clave definida por el usuario que está vinculada a todos los objetos de caché de datos creados por el control de origen de datos.
Propiedad protegida ChildControlsCreated Obtiene un valor que indica si se han creado controles secundarios del control de servidor. (Se hereda de Control).
Propiedad pública ClientID Obtiene el identificador del control de servidor generado por ASP.NET. (Se hereda de DataSourceControl).
Propiedad pública ClientIDMode Esta propiedad no se utiliza para los controles de orígenes de datos. (Se hereda de DataSourceControl).
Propiedad protegida ClientIDSeparator Obtiene un valor de carácter que representa el carácter separado utilizado en la propiedad ClientID. (Se hereda de Control).
Propiedad pública ConflictDetection Obtiene o establece un valor que determina si se pasan o no únicamente los valores nuevos al método Update o si se pasan tanto los valores nuevos como los antiguos.
Propiedad protegida Context Obtiene el objeto HttpContext asociado al control de servidor para la solicitud Web actual. (Se hereda de Control).
Propiedad pública Controls Obtiene un objeto ControlCollection que representa los controles secundarios para un control de servidor especificado en la jerarquía de la interfaz de usuario. (Se hereda de DataSourceControl).
Propiedad pública ConvertNullToDBNull Obtiene o establece un valor que indica si el control ObjectDataSource convierte automáticamente los valores de Parameter que se pasan a una operación de actualización, inserción o eliminación desde null al valor Value.
Propiedad pública DataItemContainer Obtiene una referencia al contenedor de nomenclatura si este implementa IDataItemContainer. (Se hereda de Control).
Propiedad pública DataKeysContainer Obtiene una referencia al contenedor de nomenclatura si este implementa IDataKeysControl. (Se hereda de Control).
Propiedad pública DataObjectTypeName Obtiene o establece el nombre de una clase que el control ObjectDataSource utiliza para un parámetro de una operación que actualiza, inserta o elimina datos, en lugar de pasar valores individuales desde el control enlazado a datos.
Propiedad pública DeleteMethod Obtiene o establece el nombre del método o la función que invoca el control ObjectDataSource para eliminar los datos.
Propiedad pública DeleteParameters Obtiene la colección de parámetros que contiene los parámetros utilizados por el método DeleteMethod.
Propiedad protegida DesignMode Obtiene un valor que indica si se está utilizando un control en una superficie de diseño. (Se hereda de Control).
Propiedad pública EnableCaching Obtiene o establece un valor que indica si el control ObjectDataSource tiene habilitado el almacenamiento de datos en caché.
Propiedad pública EnablePaging Obtiene o establece un valor que indica si el control de origen de datos admite la paginación en el conjunto de datos recuperado.
Propiedad pública EnableTheming Obtiene un valor que indica si el control admite temas. (Se hereda de DataSourceControl).
Propiedad pública EnableViewState Obtiene o establece un valor que indica si el control de servidor debe mantener su estado de vista y el de los controles secundarios que contiene, en el cliente que realiza la solicitud. (Se hereda de Control).
Propiedad protegida Events Obtiene una lista de delegados de controladores de eventos del control. Esta propiedad es de sólo lectura. (Se hereda de Control).
Propiedad pública FilterExpression Obtiene o establece una expresión de filtrado que se aplica cuando se llama al método que se especifica mediante la propiedad SelectMethod.
Propiedad pública FilterParameters Obtiene una colección de parámetros que están asociados a los marcadores de posición de parámetros de la cadena FilterExpression.
Propiedad protegida HasChildViewState Obtiene un valor que indica si los controles secundarios del control de servidor actual tienen guardada alguna configuración del estado de vista. (Se hereda de Control).
Propiedad pública ID Obtiene o establece el identificador de programación asignado al control de servidor. (Se hereda de Control).
Propiedad protegida IdSeparator Infraestructura. Obtiene el carácter utilizado para separar los identificadores de control. (Se hereda de Control).
Propiedad pública InsertMethod Obtiene o establece el nombre del método o la función que invoca el control ObjectDataSource para insertar los datos.
Propiedad pública InsertParameters Obtiene la colección de parámetros que contiene los parámetros utilizados por la propiedad InsertMethod.
Propiedad protegida IsChildControlStateCleared Obtiene un valor que indica si los controles que se encuentran en este control tienen estado de control. (Se hereda de Control).
Propiedad protegida IsTrackingViewState Obtiene un valor que indica si el control de servidor está guardando los cambios realizados en su estado de vista. (Se hereda de Control).
Propiedad protegida IsViewStateEnabled Obtiene un valor que indica si el estado de vista está habilitado para este control. (Se hereda de Control).
Propiedad protegida LoadViewStateByID Obtiene un valor que indica si el control participa en la carga de su estado de vista mediante ID en lugar de índice. (Se hereda de Control).
Propiedad pública MaximumRowsParameterName Obtiene o establece el nombre del parámetro del método de recuperación de datos del objeto comercial utilizado para indicar el número de registros que se recuperan para admitir la paginación de origen de datos.
Propiedad pública NamingContainer Obtiene una referencia al contenedor de nomenclatura del control de servidor, que crea un espacio de nombres único para diferenciar los distintos controles de servidor que tienen el mismo valor para la propiedad Control.ID. (Se hereda de Control).
Propiedad pública OldValuesParameterFormatString Obtiene o establece una cadena de formato para aplicarla a los nombres de los parámetros de los valores originales que se pasan a los métodos Delete o Update.
Propiedad pública Page Obtiene una referencia a la instancia Page que contiene el control de servidor. (Se hereda de Control).
Propiedad pública Parent Obtiene una referencia al control principal del control de servidor en la jerarquía de controles de página. (Se hereda de Control).
Propiedad pública RenderingCompatibility Obtiene o establece un valor que especifica la versión de ASP.NET compatible con los elementos HTML representados. (Se hereda de Control).
Propiedad pública SelectCountMethod Obtiene o establece el nombre del método o la función que invoca el control ObjectDataSource para recuperar un recuento de filas.
Propiedad pública SelectMethod Obtiene o establece el nombre del método o la función que invoca el control ObjectDataSource para recuperar los datos.
Propiedad pública SelectParameters Obtiene una colección de los parámetros que usa el método especificado por la propiedad SelectMethod.
Propiedad pública Site Obtiene información sobre el contenedor en que se encuentra el control actual cuando se representa en una superficie de diseño. (Se hereda de Control).
Propiedad pública SkinID Obtiene la máscara que se va a aplicar al control DataSourceControl. (Se hereda de DataSourceControl).
Propiedad pública SortParameterName Obtiene o establece el nombre del objeto comercial que utilizó el parámetro SelectMethod para especificar una expresión de ordenación para admitir la ordenación del origen de datos.
Propiedad pública SqlCacheDependency Obtiene o establece una cadena delimitada por puntos y comas que indica las bases de datos y las tablas que deben utilizarse para la dependencia de caché de Microsoft SQL Server.
Propiedad pública StartRowIndexParameterName Obtiene o establece el nombre del parámetro del método de recuperación de datos utilizado para indicar el valor del identificador del primer registro que se recupera para admitir la paginación del origen de datos.
Propiedad pública TemplateControl Obtiene o establece una referencia a la plantilla que contiene este control. (Se hereda de Control).
Propiedad pública TemplateSourceDirectory Obtiene el directorio virtual de Page o UserControl que contiene el control de servidor actual. (Se hereda de Control).
Propiedad pública TypeName Obtiene o establece el nombre de la clase que representa el objeto ObjectDataSource.
Propiedad pública UniqueID Obtiene el identificador único calificado jerárquicamente para el control de servidor. (Se hereda de Control).
Propiedad pública UpdateMethod Obtiene o establece el nombre del método o la función que invoca el control ObjectDataSource para actualizar los datos.
Propiedad pública UpdateParameters Obtiene la colección de parámetros que contiene los parámetros utilizados por el método especificado por la propiedad UpdateMethod.
Propiedad protegida ViewState Obtiene un diccionario con información de estado que le permite guardar y restaurar el estado de vista de un control de servidor en las distintas solicitudes de la misma página. (Se hereda de Control).
Propiedad protegida ViewStateIgnoresCase Obtiene un valor que indica si el objeto StateBag no distingue mayúsculas de minúsculas. (Se hereda de Control).
Propiedad pública ViewStateMode Obtiene o establece el modo del estado de vista de este control. (Se hereda de Control).
Propiedad pública Visible Obtiene o establece un valor que indica si el control se muestra gráficamente. (Se hereda de DataSourceControl).
Arriba
  Nombre Descripción
Método protegido AddedControl Se le llama una vez que se ha agregado un control secundario a la colección Controls del Control objeto. (Se hereda de Control).
Método protegido AddParsedSubObject Indica al control de servidor que se ha analizado un elemento, ya sea XML o HTML, y agrega dicho elemento al objeto ControlCollection del control de servidor. (Se hereda de Control).
Método público ApplyStyleSheetSkin Aplica al control las propiedades de estilo definidas en la hoja de estilos de página. (Se hereda de DataSourceControl).
Método protegido BuildProfileTree Infraestructura. Recopila información sobre el control de servidor y la pasa a la propiedad Trace para que se muestre cuando está habilitada la traza de la página. (Se hereda de Control).
Método protegido ClearCachedClientID Infraestructura. Establece en null el valor de ClientID almacenado en caché. (Se hereda de Control).
Método protegido ClearChildControlState Elimina la información sobre el estado de control de los controles secundarios del control de servidor. (Se hereda de Control).
Método protegido ClearChildState Elimina la información sobre el estado de vista y el estado de control de los controles secundarios del control de servidor. (Se hereda de Control).
Método protegido ClearChildViewState Elimina la información sobre el estado de vista de todos los controles secundarios del control de servidor. (Se hereda de Control).
Método protegido ClearEffectiveClientIDMode Infraestructura. Establece la propiedad ClientIDMode de la instancia del control actual y de cualquier control secundario en Inherit. (Se hereda de Control).
Método protegido CreateChildControls Lo llama el marco de trabajo de las páginas ASP.NET para indicar a los controles de servidor que utilizan la implementación basada en la composición que creen los controles secundarios que contengan como forma de preparar la devolución o representación de los datos. (Se hereda de Control).
Método protegido CreateControlCollection Crea una colección para almacenar controles secundarios. (Se hereda de DataSourceControl).
Método público DataBind() Enlaza un origen de datos al control de servidor invocado y a todos sus controles secundarios. (Se hereda de Control).
Método protegido DataBind(Boolean) Enlaza un origen de datos al control de servidor que se ha invocado y a todos sus controles secundarios con una opción para generar el evento DataBinding. (Se hereda de Control).
Método protegido DataBindChildren Enlaza un origen de datos a los controles secundarios del control de servidor. (Se hereda de Control).
Método público Delete Realiza una operación de eliminación llamando al método que se identifica mediante la propiedad DeleteMethod con cualquier parámetro que esté en la colección DeleteParameters.
Método público Dispose Habilita un control de servidor para que realice la limpieza final antes de que se libere de la memoria. (Se hereda de Control).
Método protegido EnsureChildControls Determina si el control de servidor contiene controles secundarios. Si no tiene controles secundarios, los crea. (Se hereda de Control).
Método protegido EnsureID Crea un identificador para controles que no tiene un identificador asignado. (Se hereda de Control).
Método público Equals(Object) Determina si el objeto Object especificado es igual al objeto Object actual. (Se hereda de Object).
Método protegido Finalize Permite que un objeto intente liberar recursos y realizar otras operaciones de limpieza antes de ser reclamado por la recolección de elementos no utilizados. (Se hereda de Object).
Método público FindControl(String) Busca un control de servidor con el parámetro id especificado en el contenedor de nomenclatura actual. (Se hereda de DataSourceControl).
Método protegido FindControl(String, Int32) Infraestructura. Busca el contenedor de nomenclatura actual para un control de servidor con el id especificado y un entero, que se especifica en el parámetro pathOffset, que ayuda a realizar la búsqueda. Esta versión del método FindControl no se debe reemplazar. (Se hereda de Control).
Método público Focus Establece el foco de entrada en el control. (Se hereda de DataSourceControl).
Método protegido GetDesignModeState Infraestructura. Obtiene datos en tiempo de diseño para un control. (Se hereda de Control).
Método público GetHashCode Actúa como función hash para un tipo concreto. (Se hereda de Object).
Método público GetRouteUrl(Object) Obtiene la dirección URL que corresponde a un conjunto de parámetros de ruta. (Se hereda de Control).
Método público GetRouteUrl(RouteValueDictionary) Obtiene la dirección URL que corresponde a un conjunto de parámetros de ruta. (Se hereda de Control).
Método público GetRouteUrl(String, Object) Obtiene la dirección URL que corresponde a un conjunto de parámetros de ruta y un nombre de ruta. (Se hereda de Control).
Método público GetRouteUrl(String, RouteValueDictionary) Obtiene la dirección URL que corresponde a un conjunto de parámetros de ruta y un nombre de ruta. (Se hereda de Control).
Método público GetType Obtiene el objeto Type de la instancia actual. (Se hereda de Object).
Método público GetUniqueIDRelativeTo Devuelve la parte correspondiente al prefijo de la propiedad UniqueID del control especificado. (Se hereda de Control).
Método protegido GetView Recupera la vista de origen de datos con nombre asociada al control de origen de datos. (Invalida a DataSourceControl.GetView(String)).
Método protegido GetViewNames Recupera una colección de nombres que representa la lista de objetos de vista asociados al objeto ObjectDataSource. (Invalida a DataSourceControl.GetViewNames()).
Método público HasControls Determina si el control de servidor contiene controles secundarios. (Se hereda de DataSourceControl).
Método protegido HasEvents Devuelve un valor que indica si se registran eventos para el control o los controles secundarios. (Se hereda de Control).
Método público Insert Realiza una operación de inserción mediante una llamada al método identificado por la propiedad InsertMethod y cualquier parámetro de la colección InsertParameters.
Método protegido IsLiteralContent Infraestructura. Determina si el control de servidor alberga únicamente contenido literal. (Se hereda de Control).
Método protegido LoadControlState Restaura información de estado de control de una solicitud de página anterior guardada por el método SaveControlState. (Se hereda de Control).
Método protegido LoadViewState Infraestructura. Carga el estado de vista previamente guardado del control ObjectDataSource. (Invalida a Control.LoadViewState(Object)).
Método protegido MapPathSecure Recupera la ruta de acceso física a la que se asigna una ruta de acceso virtual, absoluta o relativa. (Se hereda de Control).
Método protegido MemberwiseClone Crea una copia superficial del objeto Object actual. (Se hereda de Object).
Método protegido OnBubbleEvent Determina si el evento del control de servidor debe pasarse a la jerarquía de controles de servidor de la interfaz de usuario de la página. (Se hereda de Control).
Método protegido OnDataBinding Provoca el evento DataBinding. (Se hereda de Control).
Método protegido OnInit Agrega un controlador de eventos LoadComplete a la página que contiene el control ObjectDataSource. (Invalida a Control.OnInit(EventArgs)).
Método protegido OnLoad Provoca el evento Load. (Se hereda de Control).
Método protegido OnPreRender Provoca el evento PreRender. (Se hereda de Control).
Método protegido OnUnload Provoca el evento Unload. (Se hereda de Control).
Método protegido OpenFile Obtiene un objeto Stream utilizado para leer un archivo. (Se hereda de Control).
Método protegido RaiseBubbleEvent Asigna los orígenes del evento y su información al control principal del control. (Se hereda de Control).
Método protegido RaiseDataSourceChangedEvent Genera el evento DataSourceChanged. (Se hereda de DataSourceControl).
Método protegido RemovedControl Se le llama una vez que se ha quitado un control secundario de la colección Controls del Control objeto. (Se hereda de Control).
Método protegido Render Envía el contenido del control de servidor a un objeto HtmlTextWriter suministrado, que escribe el contenido que se va a representar en el cliente. (Se hereda de Control).
Método protegido RenderChildren Envía el contenido del control secundario del control de servidor a un objeto HtmlTextWriter suministrado, que escribe el contenido que se va a representar en el cliente. (Se hereda de Control).
Método público RenderControl(HtmlTextWriter) Envía el contenido del control de servidor a un objeto HtmlTextWriter que se proporciona y almacena la información de traza sobre el control si dicha traza está habilitada. (Se hereda de DataSourceControl).
Método protegido RenderControl(HtmlTextWriter, ControlAdapter) Coloca el contenido de un control de servidor en un objeto HtmlTextWriter proporcionado, utilizando un objeto ControlAdapter proporcionado. (Se hereda de Control).
Método protegido ResolveAdapter Obtiene el adaptador de controles que se encarga de representar el control especificado. (Se hereda de Control).
Método público ResolveClientUrl Obtiene una dirección URL que el explorador puede utilizar. (Se hereda de Control).
Método público ResolveUrl Convierte una dirección URL en una que el cliente solicitante pueda utilizar. (Se hereda de Control).
Método protegido SaveControlState Guarda los cambios de estado de un control de servidor que se hayan producido desde el momento en que se devolvieron al servidor los datos de la página. (Se hereda de Control).
Método protegido SaveViewState Infraestructura. Guarda el estado del control ObjectDataSource. (Invalida a Control.SaveViewState()).
Método público Select Recupera los datos del almacenamiento de datos subyacente mediante una llamada al método identificado por la propiedad SelectMethod con los parámetros de la colección SelectParameters.
Método protegido SetDesignModeState Establece datos en tiempo de diseño para un control. (Se hereda de Control).
Método público SetRenderMethodDelegate Infraestructura. Asigna un delegado de controlador de eventos para representar el control de servidor y su contenido en el control principal. (Se hereda de Control).
Método público ToString Devuelve una cadena que representa el objeto actual. (Se hereda de Object).
Método protegido TrackViewState Infraestructura. Efectúa el seguimiento de los cambios en el estado de vista del control ObjectDataSource para poder almacenarlos en el objeto System.Web.UI.StateBag. (Invalida a Control.TrackViewState()).
Método público Update Realiza una operación de actualización llamando al método que se identifica mediante la propiedad UpdateMethod y cualquier parámetro que esté en la colección UpdateParameters.
Arriba
  Nombre Descripción
Evento público DataBinding Se produce cuando el control de servidor se enlaza a un origen de datos. (Se hereda de Control).
Evento público Deleted Se produce cuando ha finalizado una operación Delete.
Evento público Deleting Se produce antes de una operación Delete.
Evento público Disposed Se produce cuando un control de servidor se libera de la memoria, lo que constituye la última fase del período de duración de un control de servidor cuando se solicita una página ASP.NET. (Se hereda de Control).
Evento público Filtering Se produce antes de una operación de filtrado.
Evento público Init Tiene lugar al inicializar el control de servidor, que es el primer paso en su ciclo de vida. (Se hereda de Control).
Evento público Inserted Se produce cuando finaliza una operación Insert.
Evento público Inserting Se produce antes de una operación Insert.
Evento público Load Se produce cuando el control de servidor se carga en el objeto Page. (Se hereda de Control).
Evento público ObjectCreated Aparece después de crear el objeto identificado por la propiedad TypeName.
Evento público ObjectCreating Aparece antes de crear el objeto identificado por la propiedad TypeName.
Evento público ObjectDisposing Aparece antes de descartar el objeto identificado por la propiedad TypeName.
Evento público PreRender Se produce una vez que se carga el objeto Control, pero antes de su representación. (Se hereda de Control).
Evento público Selected Se produce cuando ha finalizado una operación Select.
Evento público Selecting Se produce antes de una operación Select.
Evento público Unload Se produce cuando el control de servidor se descarga de la memoria. (Se hereda de Control).
Evento público Updated Se produce cuando finaliza una operación Update.
Evento público Updating Se produce antes de una operación Update.
Arriba
  Nombre Descripción
Método de extensión público FindDataSourceControl Devuelve el origen de datos que está asociado al control de datos del control especificado. (Definido por DynamicDataExtensions).
Método de extensión público FindFieldTemplate Devuelve la plantilla de campo para la columna especificada en el contenedor de nomenclatura del control especificado. (Definido por DynamicDataExtensions).
Método de extensión público FindMetaTable Devuelve el objeto de metatabla para el control de datos contenedor. (Definido por DynamicDataExtensions).
Arriba
  Nombre Descripción
Implementación explícita de interfaces Propiedad privada IControlBuilderAccessor.ControlBuilder Para obtener una descripción de este miembro, vea IControlBuilderAccessor.ControlBuilder. (Se hereda de Control).
Implementación explícita de interfaces Método privado IControlDesignerAccessor.GetDesignModeState Para obtener una descripción de este miembro, vea IControlDesignerAccessor.GetDesignModeState. (Se hereda de Control).
Implementación explícita de interfaces Método privado IControlDesignerAccessor.SetDesignModeState Para obtener una descripción de este miembro, vea IControlDesignerAccessor.SetDesignModeState. (Se hereda de Control).
Implementación explícita de interfaces Método privado IControlDesignerAccessor.SetOwnerControl Infraestructura. Para obtener una descripción de este miembro, vea IControlDesignerAccessor.SetOwnerControl. (Se hereda de Control).
Implementación explícita de interfaces Propiedad privada IControlDesignerAccessor.UserData Para obtener una descripción de este miembro, vea IControlDesignerAccessor.UserData. (Se hereda de Control).
Implementación explícita de interfaces Propiedad privada IDataBindingsAccessor.DataBindings Para obtener una descripción de este miembro, vea IDataBindingsAccessor.DataBindings. (Se hereda de Control).
Implementación explícita de interfaces Propiedad privada IDataBindingsAccessor.HasDataBindings Para obtener una descripción de este miembro, vea IDataBindingsAccessor.HasDataBindings. (Se hereda de Control).
Implementación explícita de interfaces Evento privado IDataSource.DataSourceChanged Infraestructura. Se produce cuando un control de origen de datos ha cambiado de modo que afecta a los controles enlazados a datos. (Se hereda de DataSourceControl).
Implementación explícita de interfaces Método privado IDataSource.GetView Infraestructura. Obtiene el objeto DataSourceView con nombre asociado al control DataSourceControl. Ciertos controles de origen de datos sólo admiten una vista, mientras que otros admiten más de una. (Se hereda de DataSourceControl).
Implementación explícita de interfaces Método privado IDataSource.GetViewNames Infraestructura. Obtiene una colección de nombres, que representa la lista de objetos DataSourceView asociados al control DataSourceControl. (Se hereda de DataSourceControl).
Implementación explícita de interfaces Propiedad privada IExpressionsAccessor.Expressions Para obtener una descripción de este miembro, vea IExpressionsAccessor.Expressions. (Se hereda de Control).
Implementación explícita de interfaces Propiedad privada IExpressionsAccessor.HasExpressions Para obtener una descripción de este miembro, vea IExpressionsAccessor.HasExpressions. (Se hereda de Control).
Implementación explícita de interfaces Propiedad privada IListSource.ContainsListCollection Infraestructura. Indica si el control de origen de datos está asociado a una o varias listas de datos. (Se hereda de DataSourceControl).
Implementación explícita de interfaces Método privado IListSource.GetList Infraestructura. Obtiene una lista de controles de origen de datos que pueden utilizarse como orígenes de listas de datos. (Se hereda de DataSourceControl).
Implementación explícita de interfaces Método privado IParserAccessor.AddParsedSubObject Para obtener una descripción de este miembro, vea IParserAccessor.AddParsedSubObject. (Se hereda de Control).
Arriba

En este tema:

Introduction

El objeto ObjectDataSource es un control de origen de datos de ASP.NET que representa un objeto de nivel medio orientado a datos o un objeto de interfaz de datos con controles enlazados a datos. El control ObjectDataSource se puede utilizar junto con un control enlazado a datos para mostrar, editar y ordenar los datos de una página Web con muy poco o nada de código.

No hay ninguna representación visual del control ObjectDataSource. Se implementa como un control para permitir crearlo de forma declarativa y, de forma opcional, permitir que participe en la administración de estados. Como resultado, ObjectDataSource no admite características visuales como las propiedades EnableTheming o SkinID.

Finalidad

Una práctica de diseño de aplicaciones bastante habitual consiste en separar la capa de presentación de la lógica empresarial y encapsular ésta en objetos comerciales. Estos objetos comerciales forman una capa aparte entre la capa de presentación y la capa de datos, lo que produce una arquitectura de aplicación de tres niveles. El control ObjectDataSource permite a los desarrolladores utilizar un control de origen de datos de ASP.NET y a la vez retener su arquitectura de aplicación de tres niveles.

El control ObjectDataSource utiliza la reflexión para crear instancias de objetos comerciales y para llamar a los métodos que contienen para recuperar, actualizar, insertar y eliminar datos. La propiedad TypeName identifica el nombre de la clase con la que trabaja ObjectDataSource. El control ObjectDataSource crea y destruye una instancia de la clase por cada llamada a un método; no mantiene el objeto en la memoria durante el periodo de duración de la solicitud Web. Esto supone una consideración importante si el objeto comercial que se utiliza requiere muchos recursos o si resulta, por otra parte, caro de crear y destruir. Puede que el uso de un objeto caro no sea la mejor opción de diseño, pero permite controlar la duración del objeto por medio de los eventos ObjectCreating, ObjectCreated y ObjectDisposing.

Nota Nota

Los métodos identificados por las propiedades SelectMethod, UpdateMethod, InsertMethod y DeleteMethod pueden ser métodos de instancia o métodos static (Shared en Visual Basic). Si los métodos son static (Shared en Visual Basic), no se crea una instancia del objeto comercial ni se provocan los eventos ObjectCreating, ObjectCreated y ObjectDisposing.

Recuperar datos

Para recuperar los datos de un objeto comercial, establezca la propiedad SelectMethod con el nombre del método que recupera los datos. Si el método no devuelve un objeto IEnumerable o DataSet, el motor en tiempo de ejecución incluye el objeto en una colección IEnumerable. Si la firma del método tiene parámetros, puede agregar objetos Parameter a la colección SelectParameters y después enlazarlos a los valores que desee pasar al método que especifica la propiedad SelectMethod. Para que ObjectDataSource utilice los parámetros, éstos deben coincidir con los nombres y tipos de los parámetros de la firma del método. Para obtener más información, vea Utilizar parámetros con el control ObjectDataSource.

El control ObjectDataSource recupera los datos cada vez que se llama al método Select. Este método proporciona el acceso mediante programación al método especificado por la propiedad.SelectMethod. Los controles enlazados a ObjectDataSource llaman automáticamente al método especificado por la propiedad SelectMethod cuando se llama a su método DataBind. Si establece la propiedad DataSourceID de un control enlazado a datos, el control se enlaza automáticamente a los datos del origen de datos, según sea necesario. El método recomendado para enlazar un control ObjectDataSource a un control enlazado a datos consiste en establecer la propiedad DataSourceID. Como alternativa, puede establecer la propiedad DataSource, pero entonces debe llamar explícitamente al método DataBind del control enlazado a datos. Para recuperar los datos puede llamar al método Select mediante programación en cualquier momento.

Para obtener más información acerca de cómo enlazar controles enlazados a datos a controles de origen de datos, vea Establecer enlaces a datos utilizando un control de origen de datos.

Realizar operaciones de datos

Dependiendo de las funciones del objeto comercial con el que trabaje el control ObjectDataSource, puede realizar operaciones de datos tales como la actualización, inserción y eliminación. Para realizar estas operaciones, establezca el nombre de método adecuado y cualquier parámetro asociado para la operación que desee realizar. Por ejemplo, para una operación de actualización, establezca la propiedad UpdateMethod en el nombre del método de objeto comercial que efectué actualizaciones y agregue los parámetros necesarios a la colección UpdateParameters. Si el control ObjectDataSource se asocia a un control enlazado a datos, este control agrega los parámetros. En este caso, debe garantizar que los nombres de los parámetros del método coincidan con los nombres de los campos del control enlazado a datos. La actualización se realiza cuando se llama al método Update, ya sea de manera explícita mediante código o automática mediante un control enlazado a datos. Se sigue el mismo modelo general para las operaciones Delete y Insert. Se supone que los objetos comerciales realizan las operaciones de datos de este tipo de registro en registro, en lugar de hacerlo por lotes.

Filtrar datos

El control ObjectDataSource puede filtrar los datos recuperados por la propiedad SelectMethod, si los datos se devuelven como un objeto DataSet o DataTable. El control ObjectDataSource permite almacenar en memoria caché datos de todos los tipos, aunque no es conveniente almacenar en caché aquellos objetos que conservan recursos o estados que no pueden compartirse para atender varias solicitudes (por ejemplo, un objeto SqlDataReader abierto), puesto que esta misma instancia del objeto se utilizará para atender varias solicitudes. Puede establecer la propiedad FilterExpression en una expresión de filtrado, utilizando una sintaxis de cadena de formato y enlazando los valores de la expresión a parámetros especificados en la colección FilterParameters.

Almacenamiento en caché

Aunque ObjectDataSource no conserva la instancia del objeto comercial entre varias solicitudes, puede almacenar en memoria caché el resultado de la propiedad SelectMethod. Mientras los datos estén almacenados en caché, las llamadas posteriores al método Select devolverán los datos de la caché, en lugar de crear el objeto comercial y llamar a su propiedad SelectMethod mediante reflexión. El almacenamiento en caché permite evitar crear el objeto y llamar a su método de datos a expensas de la memoria del servidor Web. El objeto ObjectDataSource almacena automáticamente los datos en memoria caché cuando la propiedad EnableCaching está establecida en true y la propiedad CacheDuration está establecida en el número de segundos durante los cuales la memoria caché almacena datos antes de descartarse la caché. También puede especificar una propiedad CacheExpirationPolicy y una propiedad SqlCacheDependency opcional.

Características

En la tabla siguiente se describen las características del control ObjectDataSource.

Función

Requisitos

Selección

Establezca la propiedad SelectMethod en el nombre del método de objeto comercial que selecciona los datos e incluya todos los parámetros necesarios en la colección SelectParameters, ya sea mediante programación o con un control enlazado a datos.

Ordenar

Establezca la propiedad SortParameterName en el nombre del parámetro del método SelectMethod que lleva los criterios de ordenación.

Filtrar

Establezca la propiedad FilterExpression en una expresión de filtrado y, de forma opcional, agregue los parámetros necesarios a la colección FilterParameters para filtrar los datos cuando se llame al método Select. El método especificado por la propiedad SelectMethod debe devolver DataSet o DataTable.

Paginación

Se admite la paginación del origen de datos si el método SelectMethod contiene los parámetros del número máximo de registros que se recuperan y el índice del primer registro a recuperar. Los nombres de estos parámetros deben establecerse en las propiedades MaximumRowsParameterName y StartRowIndexParameterName respectivamente. Un control enlazado a datos podría realizar la paginación por sí mismo, incluso si el control ObjectDataSource no admite la paginación directamente en el método especificado por la propiedad SelectMethod. Para que el control enlazado a datos pueda hacerlo, se requiere que el método especificado por la propiedad SelectMethod devuelva un objeto que implemente la interfaz ICollection.

Actualizando

Establezca la propiedad UpdateMethod en el nombre del método de objeto comercial que actualiza los datos e incluya todos los parámetros necesarios en la colección UpdateParameters.

Eliminando

Establezca la propiedad DeleteMethod en el nombre del método de objeto comercial o la función que elimina los datos e incluya todos los parámetros necesarios en la colección DeleteParameters.

Inserción

Establezca la propiedad InsertMethod en el nombre del método de objeto comercial o la función que inserta los datos e incluya todos los parámetros necesarios en la colección InsertParameters.

Almacenamiento en caché

Establezca la propiedad EnableCaching en true y las propiedades CacheDuration y CacheExpirationPolicy según el comportamiento del almacenamiento en caché que desee para los datos almacenados en memoria caché.

Nota Nota

Cuando se usa la clase ObjectDataSource para actualizar o insertar datos, las cadenas que se escriben en el cliente no se convierten automáticamente del formato de referencia cultural de cliente en el formato de referencia cultural de servidor. Por ejemplo, la referencia cultural del cliente podría especificar DD/MM/AAAA como formato de fecha y el formato de fecha en el servidor podría ser MM/DD/AAAA. En ese caso, el 5 de octubre de 2009 se escribiría en un control TextBox como 5/10/2009 pero se interpretaría como el 10 de mayo de 2009. El 15 de octubre de 2009 se escribiría como 15/10/2009 y se rechazaría como una fecha no válida.

Vista de datos

Como todos los controles de origen de datos, el control ObjectDataSource se asocia a una clase de vista de origen de datos. Aunque el control ObjectDataSource es la interfaz que usa el desarrollador de páginas para trabajar con los datos, la clase ObjectDataSourceView es la interfaz con la que trabajan los controles enlazados a datos. Además, la clase ObjectDataSourceView describe las funciones del control de origen de datos y realiza el trabajo concreto. El control ObjectDataSource sólo tiene un objeto ObjectDataSourceView asociado y siempre se denomina DefaultView. Aunque el método GetView expone el objeto ObjectDataSourceView, muchos de sus métodos y propiedades están contenidos en el control ObjectDataSource y son expuestos directamente por él. En segundo plano, el objeto ObjectDataSourceView realiza todas las operaciones de datos, incluidas recuperar, insertar, actualizar, eliminar, filtrar y ordenar los datos. Para obtener más información, vea ObjectDataSourceView.

Usar LINQ to SQL

El control ObjectDataSource se puede utilizar con una clase LINQ to SQL. Para ello, se establece la propiedad TypeName en el nombre de la clase de contexto de datos. También se establecen los métodos SelectMethod, UpdateMethod, InsertMethod y DeleteMethod en los métodos de la clase de contexto de datos que realizan las operaciones correspondientes. Debe crear un controlador para el evento ObjectDisposing con el fin de cancelar la eliminación de la clase de contexto de datos. Este paso es necesario porque LINQ to SQL admite la ejecución diferida, mientras que el control ObjectDataSource intenta eliminar el contexto de datos después de la operación Select. Para obtener más información sobre cómo crear clases LINQ to SQL, vea Cómo: Crear clases de LINQ to SQL en un proyecto web. Para obtener un ejemplo de cómo cancelar la eliminación de una clase de contexto de datos, vea el evento ObjectDisposing.

Sintaxis de la declaración

<asp:ObjectDataSource
    CacheDuration="string|Infinite"
    CacheExpirationPolicy="Absolute|Sliding"
    CacheKeyDependency="string"
    ConflictDetection="OverwriteChanges|CompareAllValues"
    ConvertNullToDBNull="True|False"
    DataObjectTypeName="string"
    DeleteMethod="string"
    EnableCaching="True|False"
    EnablePaging="True|False"
    EnableTheming="True|False"
    EnableViewState="True|False"
    FilterExpression="string"
    ID="string"
    InsertMethod="string"
    MaximumRowsParameterName="string"
    OldValuesParameterFormatString="string"
    OnDataBinding="DataBinding event handler"
    OnDeleted="Deleted event handler"
    OnDeleting="Deleting event handler"
    OnDisposed="Disposed event handler"
    OnFiltering="Filtering event handler"
    OnInit="Init event handler"
    OnInserted="Inserted event handler"
    OnInserting="Inserting event handler"
    OnLoad="Load event handler"
    OnObjectCreated="ObjectCreated event handler"
    OnObjectCreating="ObjectCreating event handler"
    OnObjectDisposing="ObjectDisposing event handler"
    OnPreRender="PreRender event handler"
    OnSelected="Selected event handler"
    OnSelecting="Selecting event handler"
    OnUnload="Unload event handler"
    OnUpdated="Updated event handler"
    OnUpdating="Updating event handler"
    runat="server"
    SelectCountMethod="string"
    SelectMethod="string"
    SkinID="string"
    SortParameterName="string"
    SqlCacheDependency="string"
    StartRowIndexParameterName="string"
    TypeName="string"
    UpdateMethod="string"
    Visible="True|False"
>
        <DeleteParameters>
                <asp:ControlParameter
                    ControlID="string"
                    ConvertEmptyStringToNull="True|False"
                    DefaultValue="string"
                    Direction="Input|Output|InputOutput|ReturnValue"
                    Name="string"
                    PropertyName="string"
                    Size="integer"
                    Type="Empty|Object|DBNull|Boolean|Char|SByte|
                        Byte|Int16|UInt16|Int32|UInt32|Int64|UInt64|
                        Single|Double|Decimal|DateTime|String"
                />
                <asp:CookieParameter
                    ConvertEmptyStringToNull="True|False"
                    CookieName="string"
                    DefaultValue="string"
                    Direction="Input|Output|InputOutput|ReturnValue"
                    Name="string"
                    Size="integer"
                    Type="Empty|Object|DBNull|Boolean|Char|SByte|
                        Byte|Int16|UInt16|Int32|UInt32|Int64|UInt64|
                        Single|Double|Decimal|DateTime|String"
                />
                <asp:FormParameter
                    ConvertEmptyStringToNull="True|False"
                    DefaultValue="string"
                    Direction="Input|Output|InputOutput|ReturnValue"
                    FormField="string"
                    Name="string"
                    Size="integer"
                    Type="Empty|Object|DBNull|Boolean|Char|SByte|
                        Byte|Int16|UInt16|Int32|UInt32|Int64|UInt64|
                        Single|Double|Decimal|DateTime|String"
                />
                <asp:Parameter
                    ConvertEmptyStringToNull="True|False"
                    DefaultValue="string"
                    Direction="Input|Output|InputOutput|ReturnValue"
                    Name="string"
                    Size="integer"
                    Type="Empty|Object|DBNull|Boolean|Char|SByte|
                        Byte|Int16|UInt16|Int32|UInt32|Int64|UInt64|
                        Single|Double|Decimal|DateTime|String"
                />
                <asp:ProfileParameter
                    ConvertEmptyStringToNull="True|False"
                    DefaultValue="string"
                    Direction="Input|Output|InputOutput|ReturnValue"
                    Name="string"
                    PropertyName="string"
                    Size="integer"
                    Type="Empty|Object|DBNull|Boolean|Char|SByte|
                        Byte|Int16|UInt16|Int32|UInt32|Int64|UInt64|
                        Single|Double|Decimal|DateTime|String"
                />
                <asp:QueryStringParameter
                    ConvertEmptyStringToNull="True|False"
                    DefaultValue="string"
                    Direction="Input|Output|InputOutput|ReturnValue"
                    Name="string"
                    QueryStringField="string"
                    Size="integer"
                    Type="Empty|Object|DBNull|Boolean|Char|SByte|
                        Byte|Int16|UInt16|Int32|UInt32|Int64|UInt64|
                        Single|Double|Decimal|DateTime|String"
                />
                <asp:SessionParameter
                    ConvertEmptyStringToNull="True|False"
                    DefaultValue="string"
                    Direction="Input|Output|InputOutput|ReturnValue"
                    Name="string"
                    SessionField="string"
                    Size="integer"
                    Type="Empty|Object|DBNull|Boolean|Char|SByte|
                        Byte|Int16|UInt16|Int32|UInt32|Int64|UInt64|
                        Single|Double|Decimal|DateTime|String"
                />
        </DeleteParameters>
        <FilterParameters>
                <asp:ControlParameter
                    ControlID="string"
                    ConvertEmptyStringToNull="True|False"
                    DefaultValue="string"
                    Direction="Input|Output|InputOutput|ReturnValue"
                    Name="string"
                    PropertyName="string"
                    Size="integer"
                    Type="Empty|Object|DBNull|Boolean|Char|SByte|
                        Byte|Int16|UInt16|Int32|UInt32|Int64|UInt64|
                        Single|Double|Decimal|DateTime|String"
                />
                <asp:CookieParameter
                    ConvertEmptyStringToNull="True|False"
                    CookieName="string"
                    DefaultValue="string"
                    Direction="Input|Output|InputOutput|ReturnValue"
                    Name="string"
                    Size="integer"
                    Type="Empty|Object|DBNull|Boolean|Char|SByte|
                        Byte|Int16|UInt16|Int32|UInt32|Int64|UInt64|
                        Single|Double|Decimal|DateTime|String"
                />
                <asp:FormParameter
                    ConvertEmptyStringToNull="True|False"
                    DefaultValue="string"
                    Direction="Input|Output|InputOutput|ReturnValue"
                    FormField="string"
                    Name="string"
                    Size="integer"
                    Type="Empty|Object|DBNull|Boolean|Char|SByte|
                        Byte|Int16|UInt16|Int32|UInt32|Int64|UInt64|
                        Single|Double|Decimal|DateTime|String"
                />
                <asp:Parameter
                    ConvertEmptyStringToNull="True|False"
                    DefaultValue="string"
                    Direction="Input|Output|InputOutput|ReturnValue"
                    Name="string"
                    Size="integer"
                    Type="Empty|Object|DBNull|Boolean|Char|SByte|
                        Byte|Int16|UInt16|Int32|UInt32|Int64|UInt64|
                        Single|Double|Decimal|DateTime|String"
                />
                <asp:ProfileParameter
                    ConvertEmptyStringToNull="True|False"
                    DefaultValue="string"
                    Direction="Input|Output|InputOutput|ReturnValue"
                    Name="string"
                    PropertyName="string"
                    Size="integer"
                    Type="Empty|Object|DBNull|Boolean|Char|SByte|
                        Byte|Int16|UInt16|Int32|UInt32|Int64|UInt64|
                        Single|Double|Decimal|DateTime|String"
                />
                <asp:QueryStringParameter
                    ConvertEmptyStringToNull="True|False"
                    DefaultValue="string"
                    Direction="Input|Output|InputOutput|ReturnValue"
                    Name="string"
                    QueryStringField="string"
                    Size="integer"
                    Type="Empty|Object|DBNull|Boolean|Char|SByte|
                        Byte|Int16|UInt16|Int32|UInt32|Int64|UInt64|
                        Single|Double|Decimal|DateTime|String"
                />
                <asp:SessionParameter
                    ConvertEmptyStringToNull="True|False"
                    DefaultValue="string"
                    Direction="Input|Output|InputOutput|ReturnValue"
                    Name="string"
                    SessionField="string"
                    Size="integer"
                    Type="Empty|Object|DBNull|Boolean|Char|SByte|
                        Byte|Int16|UInt16|Int32|UInt32|Int64|UInt64|
                        Single|Double|Decimal|DateTime|String"
                />
        </FilterParameters>
        <InsertParameters>
                <asp:ControlParameter
                    ControlID="string"
                    ConvertEmptyStringToNull="True|False"
                    DefaultValue="string"
                    Direction="Input|Output|InputOutput|ReturnValue"
                    Name="string"
                    PropertyName="string"
                    Size="integer"
                    Type="Empty|Object|DBNull|Boolean|Char|SByte|
                        Byte|Int16|UInt16|Int32|UInt32|Int64|UInt64|
                        Single|Double|Decimal|DateTime|String"
                />
                <asp:CookieParameter
                    ConvertEmptyStringToNull="True|False"
                    CookieName="string"
                    DefaultValue="string"
                    Direction="Input|Output|InputOutput|ReturnValue"
                    Name="string"
                    Size="integer"
                    Type="Empty|Object|DBNull|Boolean|Char|SByte|
                        Byte|Int16|UInt16|Int32|UInt32|Int64|UInt64|
                        Single|Double|Decimal|DateTime|String"
                />
                <asp:FormParameter
                    ConvertEmptyStringToNull="True|False"
                    DefaultValue="string"
                    Direction="Input|Output|InputOutput|ReturnValue"
                    FormField="string"
                    Name="string"
                    Size="integer"
                    Type="Empty|Object|DBNull|Boolean|Char|SByte|
                        Byte|Int16|UInt16|Int32|UInt32|Int64|UInt64|
                        Single|Double|Decimal|DateTime|String"
                />
                <asp:Parameter
                    ConvertEmptyStringToNull="True|False"
                    DefaultValue="string"
                    Direction="Input|Output|InputOutput|ReturnValue"
                    Name="string"
                    Size="integer"
                    Type="Empty|Object|DBNull|Boolean|Char|SByte|
                        Byte|Int16|UInt16|Int32|UInt32|Int64|UInt64|
                        Single|Double|Decimal|DateTime|String"
                />
                <asp:ProfileParameter
                    ConvertEmptyStringToNull="True|False"
                    DefaultValue="string"
                    Direction="Input|Output|InputOutput|ReturnValue"
                    Name="string"
                    PropertyName="string"
                    Size="integer"
                    Type="Empty|Object|DBNull|Boolean|Char|SByte|
                        Byte|Int16|UInt16|Int32|UInt32|Int64|UInt64|
                        Single|Double|Decimal|DateTime|String"
                />
                <asp:QueryStringParameter
                    ConvertEmptyStringToNull="True|False"
                    DefaultValue="string"
                    Direction="Input|Output|InputOutput|ReturnValue"
                    Name="string"
                    QueryStringField="string"
                    Size="integer"
                    Type="Empty|Object|DBNull|Boolean|Char|SByte|
                        Byte|Int16|UInt16|Int32|UInt32|Int64|UInt64|
                        Single|Double|Decimal|DateTime|String"
                />
                <asp:SessionParameter
                    ConvertEmptyStringToNull="True|False"
                    DefaultValue="string"
                    Direction="Input|Output|InputOutput|ReturnValue"
                    Name="string"
                    SessionField="string"
                    Size="integer"
                    Type="Empty|Object|DBNull|Boolean|Char|SByte|
                        Byte|Int16|UInt16|Int32|UInt32|Int64|UInt64|
                        Single|Double|Decimal|DateTime|String"
                />
        </InsertParameters>
        <SelectParameters>
                <asp:ControlParameter
                    ControlID="string"
                    ConvertEmptyStringToNull="True|False"
                    DefaultValue="string"
                    Direction="Input|Output|InputOutput|ReturnValue"
                    Name="string"
                    PropertyName="string"
                    Size="integer"
                    Type="Empty|Object|DBNull|Boolean|Char|SByte|
                        Byte|Int16|UInt16|Int32|UInt32|Int64|UInt64|
                        Single|Double|Decimal|DateTime|String"
                />
                <asp:CookieParameter
                    ConvertEmptyStringToNull="True|False"
                    CookieName="string"
                    DefaultValue="string"
                    Direction="Input|Output|InputOutput|ReturnValue"
                    Name="string"
                    Size="integer"
                    Type="Empty|Object|DBNull|Boolean|Char|SByte|
                        Byte|Int16|UInt16|Int32|UInt32|Int64|UInt64|
                        Single|Double|Decimal|DateTime|String"
                />
                <asp:FormParameter
                    ConvertEmptyStringToNull="True|False"
                    DefaultValue="string"
                    Direction="Input|Output|InputOutput|ReturnValue"
                    FormField="string"
                    Name="string"
                    Size="integer"
                    Type="Empty|Object|DBNull|Boolean|Char|SByte|
                        Byte|Int16|UInt16|Int32|UInt32|Int64|UInt64|
                        Single|Double|Decimal|DateTime|String"
                />
                <asp:Parameter
                    ConvertEmptyStringToNull="True|False"
                    DefaultValue="string"
                    Direction="Input|Output|InputOutput|ReturnValue"
                    Name="string"
                    Size="integer"
                    Type="Empty|Object|DBNull|Boolean|Char|SByte|
                        Byte|Int16|UInt16|Int32|UInt32|Int64|UInt64|
                        Single|Double|Decimal|DateTime|String"
                />
                <asp:ProfileParameter
                    ConvertEmptyStringToNull="True|False"
                    DefaultValue="string"
                    Direction="Input|Output|InputOutput|ReturnValue"
                    Name="string"
                    PropertyName="string"
                    Size="integer"
                    Type="Empty|Object|DBNull|Boolean|Char|SByte|
                        Byte|Int16|UInt16|Int32|UInt32|Int64|UInt64|
                        Single|Double|Decimal|DateTime|String"
                />
                <asp:QueryStringParameter
                    ConvertEmptyStringToNull="True|False"
                    DefaultValue="string"
                    Direction="Input|Output|InputOutput|ReturnValue"
                    Name="string"
                    QueryStringField="string"
                    Size="integer"
                    Type="Empty|Object|DBNull|Boolean|Char|SByte|
                        Byte|Int16|UInt16|Int32|UInt32|Int64|UInt64|
                        Single|Double|Decimal|DateTime|String"
                />
                <asp:SessionParameter
                    ConvertEmptyStringToNull="True|False"
                    DefaultValue="string"
                    Direction="Input|Output|InputOutput|ReturnValue"
                    Name="string"
                    SessionField="string"
                    Size="integer"
                    Type="Empty|Object|DBNull|Boolean|Char|SByte|
                        Byte|Int16|UInt16|Int32|UInt32|Int64|UInt64|
                        Single|Double|Decimal|DateTime|String"
                />
        </SelectParameters>
        <UpdateParameters>
                <asp:ControlParameter
                    ControlID="string"
                    ConvertEmptyStringToNull="True|False"
                    DefaultValue="string"
                    Direction="Input|Output|InputOutput|ReturnValue"
                    Name="string"
                    PropertyName="string"
                    Size="integer"
                    Type="Empty|Object|DBNull|Boolean|Char|SByte|
                        Byte|Int16|UInt16|Int32|UInt32|Int64|UInt64|
                        Single|Double|Decimal|DateTime|String"
                />
                <asp:CookieParameter
                    ConvertEmptyStringToNull="True|False"
                    CookieName="string"
                    DefaultValue="string"
                    Direction="Input|Output|InputOutput|ReturnValue"
                    Name="string"
                    Size="integer"
                    Type="Empty|Object|DBNull|Boolean|Char|SByte|
                        Byte|Int16|UInt16|Int32|UInt32|Int64|UInt64|
                        Single|Double|Decimal|DateTime|String"
                />
                <asp:FormParameter
                    ConvertEmptyStringToNull="True|False"
                    DefaultValue="string"
                    Direction="Input|Output|InputOutput|ReturnValue"
                    FormField="string"
                    Name="string"
                    Size="integer"
                    Type="Empty|Object|DBNull|Boolean|Char|SByte|
                        Byte|Int16|UInt16|Int32|UInt32|Int64|UInt64|
                        Single|Double|Decimal|DateTime|String"
                />
                <asp:Parameter
                    ConvertEmptyStringToNull="True|False"
                    DefaultValue="string"
                    Direction="Input|Output|InputOutput|ReturnValue"
                    Name="string"
                    Size="integer"
                    Type="Empty|Object|DBNull|Boolean|Char|SByte|
                        Byte|Int16|UInt16|Int32|UInt32|Int64|UInt64|
                        Single|Double|Decimal|DateTime|String"
                />
                <asp:ProfileParameter
                    ConvertEmptyStringToNull="True|False"
                    DefaultValue="string"
                    Direction="Input|Output|InputOutput|ReturnValue"
                    Name="string"
                    PropertyName="string"
                    Size="integer"
                    Type="Empty|Object|DBNull|Boolean|Char|SByte|
                        Byte|Int16|UInt16|Int32|UInt32|Int64|UInt64|
                        Single|Double|Decimal|DateTime|String"
                />
                <asp:QueryStringParameter
                    ConvertEmptyStringToNull="True|False"
                    DefaultValue="string"
                    Direction="Input|Output|InputOutput|ReturnValue"
                    Name="string"
                    QueryStringField="string"
                    Size="integer"
                    Type="Empty|Object|DBNull|Boolean|Char|SByte|
                        Byte|Int16|UInt16|Int32|UInt32|Int64|UInt64|
                        Single|Double|Decimal|DateTime|String"
                />
                <asp:SessionParameter
                    ConvertEmptyStringToNull="True|False"
                    DefaultValue="string"
                    Direction="Input|Output|InputOutput|ReturnValue"
                    Name="string"
                    SessionField="string"
                    Size="integer"
                    Type="Empty|Object|DBNull|Boolean|Char|SByte|
                        Byte|Int16|UInt16|Int32|UInt32|Int64|UInt64|
                        Single|Double|Decimal|DateTime|String"
                />
        </UpdateParameters>
</asp:ObjectDataSource>

Esta sección contiene dos ejemplos de código. En el primer ejemplo de código se muestra cómo un control GridView puede mostrar datos utilizando un objeto ObjectDataSource en una página web ASP.NET. El segundo ejemplo de código proporciona un ejemplo de objeto comercial de nivel medio que se usa en este y muchos otros ejemplos de código de ObjectDataSource.

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


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


En el ejemplo de código siguiente se proporciona un ejemplo de objeto comercial de nivel medio que se usa en este y muchos otros ejemplos de código de ObjectDataSource. El ejemplo de código está compuesto por las dos clases básicas siguientes:

  • La clase EmployeeLogic, que es una clase sin estado que encapsula la lógica comercial.

  • La clase NorthwindEmployee, una clase de modelo que sólo contiene las funciones básicas que son necesarias para cargar y conservar datos de la capa de datos.

Se proporciona una clase NorthwindDataException adicional de utilidad.

Este conjunto de clases de ejemplo trabaja con la base de datos Northwind Traders, que está disponible con Microsoft SQL Server y Microsoft Access. Para obtener un ejemplo funcional completo, se deben compilar y utilizar estas clases con los ejemplos de código de formularios Web Forms proporcionados. Para obtener información sobre la forma de instalar la base de datos Northwind Traders, vea Cómo: Instalar bases de datos de ejemplo.

Este ejemplo ha sido diseñado para ofrecer una demostración sencilla y fácil de seguir de uno de los modos de interacción más habituales de los objetos comerciales con un control ObjectDataSource. No es una recomendación de diseño. En algunos ejemplos se agregan otros métodos a la clase EmployeeLogic o NorthwindEmployee o bien se efectúan modificaciones en este conjunto de clases para ofrecer una demostración de conceptos fundamentales.


namespace Samples.AspNet.CS {

using System;
using System.Collections;
using System.Collections.Specialized;
using System.Configuration;
using System.Data;
using System.Data.SqlClient;
using System.Web.UI;
using System.Web.UI.WebControls;
  //
  // EmployeeLogic is a stateless business object that encapsulates
  // the operations one can perform on a NorthwindEmployee object.
  //
  public class EmployeeLogic {

    // Returns a collection of NorthwindEmployee objects.
    public static ICollection GetAllEmployees () {
      ArrayList al = new ArrayList();

      ConnectionStringSettings cts = ConfigurationManager.ConnectionStrings["NorthwindConnection"];

      SqlDataSource sds
        = new SqlDataSource(cts.ConnectionString, "SELECT EmployeeID FROM Employees");

      try {

        IEnumerable IDs = sds.Select(DataSourceSelectArguments.Empty);

        // Iterate through the Enumeration and create a
        // NorthwindEmployee object for each ID.
        foreach (DataRowView row in IDs) {
          string id = row["EmployeeID"].ToString();
          NorthwindEmployee nwe = new NorthwindEmployee(id);
          // Add the NorthwindEmployee object to the collection.
          al.Add(nwe);
        }
      }
      finally {
        // If anything strange happens, clean up.
        sds.Dispose();
      }

      return al;
    }
    public static NorthwindEmployee GetEmployee(object anID) {
      return new NorthwindEmployee(anID);
    }

    public static void UpdateEmployeeInfo(NorthwindEmployee ne) {
      bool retval = ne.Save();
      if (! retval) { throw new NorthwindDataException("UpdateEmployee failed."); }
    }

    public static void DeleteEmployee(NorthwindEmployee ne) { }

  }

  public class NorthwindEmployee {

    public NorthwindEmployee () {
      ID = DBNull.Value;
      lastName = "";
      firstName = "";
      title="";
      titleOfCourtesy = "";
      reportsTo = -1;
    }

    public NorthwindEmployee (object anID) {
      this.ID = anID;

      ConnectionStringSettings cts = ConfigurationManager.ConnectionStrings["NorthwindConnection"];

		SqlConnection conn = new SqlConnection (cts.ConnectionString);
      SqlCommand sc =
        new SqlCommand(" SELECT FirstName,LastName,Title,TitleOfCourtesy,ReportsTo " +
                       " FROM Employees " +
                       " WHERE EmployeeID = @empId",
                       conn);
      // Add the employee ID parameter and set its value.
      sc.Parameters.Add(new SqlParameter("@empId",SqlDbType.Int)).Value = Int32.Parse(anID.ToString());
      SqlDataReader sdr = null;

      try {
        conn.Open();
        sdr = sc.ExecuteReader();

        // This is not a while loop. It only loops once.
        if (sdr != null && sdr.Read()) {
          // The IEnumerable contains DataRowView objects.
          this.firstName        = sdr["FirstName"].ToString();
          this.lastName         = sdr["LastName"].ToString();
          this.title            = sdr["Title"].ToString();
          this.titleOfCourtesy  = sdr["TitleOfCourtesy"].ToString();
          if (! sdr.IsDBNull(4)) {
            this.reportsTo        = sdr.GetInt32(4);
          }
        }
        else {
          throw new NorthwindDataException("Data not loaded for employee id.");
        }
      }
      finally {
        try {
          if (sdr != null) sdr.Close();
          conn.Close();
        }
        catch (SqlException) {
          // Log an event in the Application Event Log.
          throw;
        }
      }
    }

    private object ID;

    private string lastName;
    public string LastName {
      get { return lastName; }
      set { lastName = value; }
    }

    private string firstName;
    public string FirstName {
      get { return firstName; }
      set { firstName = value;  }
    }

    private string title;
    public String Title {
      get { return title; }
      set { title = value; }
    }

    private string titleOfCourtesy;
    public string Courtesy {
      get { return titleOfCourtesy; }
      set { titleOfCourtesy = value; }
    }

    private int    reportsTo;
    public int Supervisor {
      get { return reportsTo; }
      set { reportsTo = value; }
    }

    public bool Save () {
      return true;
    }
  }

  internal class NorthwindDataException: Exception {
    public NorthwindDataException(string msg) : base (msg) { }
  }
}


.NET Framework

Compatible con: 4, 3.5, 3.0, 2.0

Windows 7, Windows Vista SP1 o posterior, Windows XP SP3, Windows XP SP2 x64 Edition, Windows Server 2008 (no se admite Server Core), Windows Server 2008 R2 (se admite Server Core con SP1 o posterior), Windows Server 2003 SP2

.NET Framework no admite todas las versiones de todas las plataformas. Para obtener una lista de las versiones compatibles, vea Requisitos de sistema de .NET Framework.
Todos los miembros static (Shared en Visual Basic) públicos de este tipo son seguros para la ejecución de subprocesos. No se garantiza que los miembros de instancias sean seguros para la ejecución de subprocesos.
¿Le ha resultado útil?
(Caracteres restantes: 1500)
Contenido de la comunidad Agregar