Información general sobre los controles extensores de AJAX en ASP.NET
Actualización: noviembre 2007
Los controles extensores de AJAX en ASP.NET mejoran las funciones de cliente de los controles de servidor web estándar de ASP.NET. Puede especificar como destino controles de servidor web estándar, como los controles TextBox, Button y Panel, utilizando uno o varios controles extensores para que la experiencia del usuario en el explorador sea más satisfactoria. Por ejemplo, para que los usuarios puedan confirmar antes de enviar un formulario al servidor, se puede utilizar un control extensor que agrega funcionalidad de cliente a un control Button.
Puede agregar controles extensores de AJAX en ASP.NET a Visual Studio y trabajar con ellos como lo haría con otros controles. Puede crear sus propios controles extensores u obtenerlos de otros orígenes.
Un origen para controles extensores es ASP.NET AJAX Control Toolkit. Control Toolkit ofrece ejemplos y un SDK que facilita la creación y reutilización de controles y extensores personalizados. Puede descargar ASP.NET AJAX Control Toolkit del sitio web ASP.NET AJAX.
Nota importante: |
---|
ASP.NET AJAX Control Toolkit es una biblioteca admitida por la comunidad y no admitida por Microsoft. En este tema se describen los controles extensores incluidos en Control Toolkit como ejemplos de cómo trabajar con controles extensores. Sin embargo, no debe deducirse de la información de este tema que los controles extensores aquí explicados forman parte oficial de ASP.NET o son controles admitidos. |
Este tema contiene información sobre lo siguiente:
Características del control extensor de AJAX
Información general
Referencia de clase
Características
Visual Studio admite las siguientes características de los controles extensores:
Agregar controles extensores.
Quitar controles extensores.
Establecer las propiedades de los controles extensores.
Administrar controles extensores.
Volver al principio
Información general
Los controles extensores se pueden utilizar para mejorar la funcionalidad de cliente de los controles de servidor web estándar. No utilice los controles extensores por sí solos. Asócielos a otro control de servidor web de ASP.NET. Para asociar los controles extensores a un control de servidor web, establezca la propiedad TargetControlID del control extensor en el identificador del control de servidor que se va a extender.
Trabajar con controles extensores en Visual Studio
Si instala ASP.NET AJAX Control Toolkit, los controles extensores se muestran en su propia ficha en el Cuadro de herramientas. La sección de controles extensores del Cuadro de herramientas sólo se muestra para las páginas web, al igual que la sección Estándar del Cuadro de herramientas.
Nota: |
---|
ASP.NET AJAX Control Toolkit es una biblioteca admitida por la comunidad. No forma parte de ASP.NET. |
Agregar controles extensores
Puede utilizar los métodos siguientes para agregar controles extensores a un control de servidor web en la vista Diseño:
Arrastre el control extensor al control de servidor web. Sólo puede colocar el control extensor en los controles de servidor web que admiten controles extensores. Mientras arrastra el control extensor sobre la superficie de diseño, el puntero indica si puede colocar el control extensor en el control de servidor web.
Haga clic con el botón secundario del mouse en el control de servidor web y, a continuación, haga clic en Agregar extensor.
Seleccione la etiqueta inteligente Tareas de botón y, a continuación, haga clic en Agregar extensor.
Nota: En la vista Diseño, normalmente no se muestran los controles extensores. Sin embargo, si se produce un error relacionado con un control extensor, el control extensor se muestra.
Cuando se agrega un extensor en el diseñador, la propiedad TargetControlID del control extensor se establece en el control de servidor web asociado. El nombre del control extensor se basa en el nombre del control de servidor web al que está asociado.
Un control extensor podría admitir elementos de la interfaz de usuario que se pueden configurar. En ese caso, puede establecer estos elementos utilizando un menú de etiquetas inteligentes del control de servidor web extendido.
El control extensor no se muestra en la superficie de diseño cuando está asociado a un control de destino. Si el control extensor no está asociado a un control de destino o si no se puede determinar la asociación en tiempo de diseño, el control extensor se muestra como un marcador de posición en la superficie de diseño. Los casos donde se podría dar este resultado son los siguientes:
La propiedad TargetControlID está vacía.
La propiedad TargetControlID no coincide con un control existente.
La propiedad TargetControlID hace referencia a un control que no se puede ser extendido por el control extensor.
Si el control extensor está asociado a un control de destino válido, Visual Studio oculta las propiedades de control extensor siguientes en la ventana Propiedades:
TargetControlID
EnableViewState (se hereda de Control)
ID (se hereda de Control)
Para obtener más información sobre cómo agregar controles extensores a los controles de servidor web, vea Tutorial: Controles extensores de AJAX en ASP.NET.
Quitar controles extensores
Puede quitar la asociación entre un control extensor y un control de servidor web de la siguiente manera:
En la vista Diseño, haga clic con el botón secundario del mouse en el control de servidor web, haga clic en Quitar extensor y, a continuación, seleccione el control extensor que desea quitar.
En la vista Diseño, seleccione la etiqueta inteligente Tareas de botón, haga clic en Quitar extensor y, a continuación, seleccione el control extensor que desea quitar.
Elimine el marcado del control extensor en la vista Código fuente.
Controles extensores y el control ScriptManager
Los controles extensores que se derivan de la clase ExtenderControl requieren que haya un control ScriptManager en la página. La clase base ExtenderControl realiza una prueba para asegurarse de que existe un control ScriptManager en la página.
Sin embargo, si desea crear un control extensor que no requiere un control ScriptManager, puede crear una clase que implemente directamente la interfaz IExtenderControl. Además, si crea una clase que se deriva de Control o si amplía un control existente que se deriva de Control, puede implementar la interfaz IExtenderControl por su cuenta.
La interfaz IExtenderControl registra las bibliotecas de scripts de un control llamando al método GetScriptReferences. Registra los objetos ScriptDescriptor llamando al método GetScriptDescriptors. El método GetScriptDescriptors devuelve una lista IEnumerable de objetos ScriptDescriptor.
Nota: |
---|
Si extiende un tipo de control existente que se deriva de la clase WebControl, implemente la interfaz IScriptControl. |
Para obtener más información sobre cómo crear un control extensor de AJAX en ASP.NET, vea Agregar funcionalidad de cliente a un control de servidor web.
Controles extensores en AJAX Control Toolkit
En la tabla siguiente se describen algunos de los controles extensores de AJAX que están disponibles en ASP.NET AJAX Control Toolkit.
Nota: |
---|
ASP.NET AJAX Control Toolkit es una biblioteca admitida por la comunidad. No forma parte de ASP.NET. El contenido de la biblioteca y la funcionalidad de cada control están sujetos a cambios. |
Control extensor de AJAX |
Descripción |
---|---|
CascadingDropDown |
Rellena dinámicamente un control DropDownList, dependiendo de la selección de otro control DropDownList. Este control extensor se asocia a un control DropDownList. Cuando se cambia la selección de un control DropDownList, el control extensor CascadingDropDown llama a un servicio web especificado para recuperar una lista de valores que se utiliza para rellenar el siguiente DropDownList del conjunto. |
CollapsiblePanelExtender |
Permite agregar secciones contraíbles a una página web. Este control extensor se asocia a un control UpdatePanel. Puede especificar un control de servidor web que puede expandir o contraer el control UpdatePanel. O bien, se puede establecer UpdatePanel para expandirse o contraerse automáticamente cuando los usuarios muevan el puntero del mouse sobre él. |
ConfirmButtonExtender |
Muestra un cuadro de mensaje de confirmación después de hacer clic en un control Button, pero antes de que la página o UpdatePanel se envíe al servidor. Si los usuarios cancelan, la página no se envía. Este control extensor se asocia a un control Button. |
FilteredTextBoxExtender |
Evita que los usuarios escriban los caracteres concretos en un control TextBox. Este control extensor se asocia a un control TextBox. |
ModalPopupExtender |
Permite mostrar el contenido, pero evita que el usuario interactúe con el resto de la página. Este control extensor se asocia a cualquier control de servidor web que se pueda utilizar para abrir la ventana modal. |
PasswordStrength |
Muestra el grado de seguridad de una contraseña. Este control extensor se asocia a un control TextBox. |
RoundedCornersExtender |
Aplica esquinas redondeadas a los elementos existentes. Normalmente, este control extensor se asocia a un control Panel. |
TextBoxWatermarkExtender |
Muestra un mensaje dentro de un control TextBox cuando el cuadro de texto no contiene un valor de texto. Este control extensor se asocia a un control TextBox. |
Establecer las propiedades de los controles extensores
Puede establecer las propiedades de los controles extensores en la ventana Propiedades. Algunos controles extensores también proporcionan elementos adicionales de la interfaz de usuario a los que puede tener acceso a través del menú de etiquetas inteligentes del control de servidor web.
Cuando se extiende un control de servidor web, la ventana Propiedades muestra una nueva categoría denominada Extensores. En esta sección, se muestra una nueva propiedad de varios niveles para cada control extensor agregado al control de servidor web. Cada control extensor dispone de propiedades únicas específicas del control.
Para obtener más información sobre cómo establecer las propiedades de los controles de servidor web, vea Cómo: Habilitar la ventana Propiedades de Visual Web Developer.
Administrar controles extensores
Debido a que los controles extensores no muestran directamente la interfaz de usuario en la vista Diseño, se administran como parte del control al que se agregaron. Si el control de servidor web se mueve a una ubicación diferente o se coloca dentro de otro control, se mueven los controles extensores asociados.
El marcado del control extensor se incluye directamente después del marcado del control de servidor web. Si hay varios controles extensores asociados a un control de servidor web, el orden de los controles extensores se mantiene durante el traslado. De esta manera se reducen las posibilidades de conflictos en tiempo de ejecución.
Cuando un control de servidor web con controles extensores asociados se elimina de la superficie de diseño, también se eliminan los extensores asociados. Si cambia la propiedad ID de un control de servidor web con controles extensores asociados en la ventana Propiedades, la propiedad TargetControlID y la propiedad ID de los controles extensores se actualiza para que coincidan.
Nota: |
---|
Si un extensor tiene un identificador personalizado (por ejemplo, uno que haya proporcionado), la propiedad ID no cambia al cambiar la propiedad ID de cualquiera de los controles de servidor web asociados. |
Si un control de servidor web con controles extensores asociados en el Portapapeles se corta o se copia, la copia del Portapapeles incluye los controles extensores asociados. Se copian como marcado y siguen inmediatamente al control. Esto es así aunque, en el origen, el marcado del extensor no sea contiguo al control. Cuando se pega el control de servidor web, también se pegan los controles extensores.
Si se introduce un error en el marcado de un control extensor, se muestra en la vista Diseño con un mensaje que indica "Error al representar el control". Para corregir este error, corrija el marcado en la vista Código fuente.
Volver al principio
Referencia de clase
En la tabla siguiente se muestran las clases de servidor clave de los controles extensores.
Clase |
Descripción |
---|---|
Proporciona una clase base abstracta de un control extensor. |
|
Define el comportamiento de un control extensor. |
Volver al principio