Repotenciando el control CustomerValidator mediante el uso de ASP.NET AJAX
Los controles de validación son muy importantes porque evitan que los usuarios envíen datos no validos a las tablas de las bases de datos o procesos que se realicen con estos. Uno de los controles más importantes y usados es el del campo requerido RequiredFieldValidator, el control de validación personalizado CustomValidator es un control muy importante porque nos permite validar datos de forma personalidad como verificación en una base de datos entre otras cosas. El principal inconveniente con este control es que se debe realizar un postback al servidor para realizar la validación, aunque el control permite llamar a un script desde el lado del cliente para realizar una validación no es una completa solución alterna debido a que desde el script no se puede hacer llamadas a una base de datos.
En el siguiente fragmento de codigo se encuentra el el javascript para realizar la operación de validacion, este llama al metodo del fragmento anterior.
Para el CustomValidator llame a la funcion javascript este se debe colocar le nombre de la funcion en la porpiedad ClientValidationFunction y tanto como el button que hace el postback como cualquie control de validacion deben estar dentro del mismo grupo de validacion mediante la propiedad ValidationGroup.
Con la ayuda de asp.net Ajax se puede dar una solución a este inconveniente mediante el uso de llamados a métodos de página. Para este ejemplo he creado un fragmento de código desde el archivo de código de la pagina aspx o behind code que es el siguiente, es necesario que la propiedad EnablePageMethods del scriptmanager este establecida como true.
Implementación del método web en C#
Implementación del método web en VB
Cabe recordar que desde este fragmento de codigo se puede llamar a un procedimiento almacenado que compare el dato enviando contra una tabla y devolver el resultado que debe ser boleano(true/false) para el control CustomValidator y el metodo de pagina retorna true si el dato es valido de lo contrario retornara false que mostrar al usuario el mensaje de error.
Test del demo
Podemos observar la hora del sistema al momento de terminar el carge de pagina
Se ingreso un dato que no cuemple con la condición en el método de pagina que retorna false y muestra el mensaje de error y no se realizo ningun postback que se puede verificar al ver que la hora del sistema esta igual al momento del carge de pagina.
Al ingresar el dato que es valido en el método de pagina, este retorna true y permite la realización del postback y al terminar el carge de pagina la hora del sistema se actualiza.