Autor: Builder, Tony Patton
Aunque ASP.NET proporciona una plataforma poderosa, los desarrolladores no deben ignorar tecnologías maduras como JavaScript. En este artículo, Tony
Patton explica cómo integrar JavaScript con controles ASP.NET en el desarrollo web.
Aunque las plataformas de desarrollo web brindan flexibilidad y numerosas funciones, a menudo desea o necesita confiar en tecnologías existentes para completar una tarea necesaria. Un buen ejemplo es ASP.NET, que proporciona una plataforma de desarrollo poderosa, pero al mismo tiempo tecnologías maduras como JavaScript. tampoco debe ignorarse. En este artículo, le explicaré cómo conectar el código JavaScript a los controles ASP.NET.
manera convencional
Normalmente, cuando una aplicación web requiere una ventana emergente o de confirmación u otra funcionalidad del lado del cliente, se crean los métodos JavaScript necesarios y se llaman cuando es necesario. Por ejemplo, el Listado A contiene una ventana de confirmación que el usuario puede usar para continuar o cancelar el envío del formulario.
Después de seleccionar el botón Enviar, se llama al método confirmSubmit de JavaScript. Este mensaje de confirmación permite al usuario continuar con el envío del formulario (seleccione Confirmar) o cancelar (seleccione Cancelar).
El código anterior funciona según lo planeado, pero no es tan sencillo cuando se trabaja en una plataforma de desarrollo, como ASP.NET.
Opciones de reemplazo para ASP.NET
ASP.NET admite el uso de elementos HTML como botones de entrada y cuadros de texto, pero existe un conjunto completo de elementos de control que proporcionan funcionalidad adicional basada en el propio modelo de desarrollo de ASP.NET.
Adjuntar JavaScript a ASP.NET no es tan simple como el enfoque directo HTML/JavaScript. El modelo de programación ASP.NET proporciona métodos en la clase de página base para adjuntar bloques de script a elementos de la página. Se pueden utilizar los siguientes métodos para adjuntar o integrar JavaScript en una página o elemento de página:
yo
RegisterClientScriptBlock: permite que su página contenga bloques de secuencias de comandos, secuencias de comandos del lado del cliente en el objeto de la página <formulario
runat=
Comienza a ejecutarse después de la etiqueta de apertura del elemento server>. El bloque de script envía la salida como un objeto, por lo que debe agregar dos etiquetas de elemento <script>.
yo
RegisterOnSubmitStatement: le permite asignar un bloque/método de secuencia de comandos al evento OnSubmit del objeto de página.
yo
RegisterStartupScript: le permite incluir bloques de script en la página, similar al método RegisterClientScriptBlock. Este método está en el objeto de la página <formulario.
runat=
Al ejecutarse antes de la etiqueta de cierre del elemento server>, el bloque de secuencia de comandos envía la salida como un objeto, por lo que debe agregar dos etiquetas de elemento <script>.
Cada método puede aceptar dos parámetros: clave y secuencia de comandos. La clave es el nombre asignado al bloque de secuencia de comandos. El valor de la clave debe ser único. Con este valor de clave único, varias instancias controladas por el servidor pueden solicitar el bloque de secuencia de comandos. ejecute el script nuevamente en el flujo de salida; el segundo script de parámetro contiene el script real enviado al cliente, que puede ser el código JavaScript completo o el nombre de un método.
Estos métodos se pueden utilizar en el código de página ASP.NET real, ya sea VB.NET, C#, J# o cualquier otro lenguaje. El Listado B muestra el código de muestra de ASP.NET escrito en C#.
Los métodos JavaScript se construyen mediante una variable de cadena, su valor se pasa al método RegisterClientScriptBlock como segundo argumento y el nombre del método real se pasa a través de los atributos del objeto.
El método Agregar de la propiedad se asigna al control del botón ASP.NET. El evento de JavaScript se pasa como primer parámetro y el nombre del método es el segundo parámetro.
Además, puede notar el uso del método IsStartupScriptRegistered, que le permite confirmar si el script se ha registrado antes de continuar usándolo. Hay dos métodos para este problema:
yo
IsStartupScriptRegistered: confirma si el script de inicio del cliente se ha registrado en el objeto de la página. Su único parámetro es el nombre del script.
yo
IsClientScriptBlockRegistered: confirma si el bloque de script del cliente se ha registrado en el objeto de la página. Su único parámetro es el nombre del script.
Otra forma de resolver el problema es utilizar el método RegisterOnSubmitStatement de la clase de página del Listado C que repite la función del Listado B, pero la diferencia es que el método confirmSubmit está conectado al evento de envío de la página en lugar del evento de clic de la. botón.
Este sencillo ejemplo ilustra claramente cómo incluir bloques de secuencias de comandos JavaScript y secuencias de comandos JavaScript en controles en una página ASP.NET. Si usa controles ASP.NET, este enfoque puede ayudarlo a adjuntar secuencias de comandos a esos controles, pero también puede usar el método de registro. para centralizar el JavaScript de un proyecto. Puede crear un archivo de clase que contenga los scripts y usarlos en las páginas según sea necesario. De esta manera, solo necesita administrar los scripts en un lugar y usarlos en una o más páginas de una aplicación.
Una combinación de lo antiguo y lo nuevo No importa en qué plataforma de desarrollo se encuentre, es poco probable que deje de usar JavaScript como lenguaje de programación del lado del cliente. Aunque los controles ASP.NET proporcionan un estándar. Debido a una gran cantidad de funciones, muchas veces todavía es necesario "casar" JavaScript con estos controles. Afortunadamente, la clase de página ASP.NET contiene numerosos métodos para integrar bloques de script y métodos en la página y sus controles.