Siguiendo con las respuestas en los foros hoy voy a explicar como poder validar si tenemos seleccionado un elemento de una lista.
http://forums.microsoft.com/MSDN-ES/ShowPost.aspx?PostID=3922327&SiteID=11
Para poder realizar esto de la forma más simple y que sea compatible con los otros validadores utilizaré un CustomValidator.
Crearé un formulario con una lista un customValidator y un botón para provocar la recarga de la página.
Para que la validación no influya en el rendimiento de la aplicación validaremos en el cliente y crearemos una función javascript para la validación.
<script type="text/javascript"> function ValidarListaSeleccionada(source, arguments) { var list = document.getElementById(source.controltovalidate); if( list != null) { var listValue = list.value; if(listValue =="") arguments.IsValid=false; else arguments.IsValid=true; } } </script>
Este script es muy simple pero muy eficaz ;-).
Para crear una función que podamos utilizar con customValidator tiene que tener dos parámetros:
-
source: el control que lanza la validación (Nuestro customValidator).
-
arguments: donde informaremos si la validación ha tenido éxito o no. (arguments.IsValid=true)
La validación consiste en localizar el control que queremos validar gracias a la propiedad controltovalidate del customValidator y recuperar el valor seleccionado de la lista. Si el valor esta vacío quiere decir que el usuario no ha seleccionado nada.
Una vez que tenemos la función creada configuraremos el validador para que la utilice.
<asp:CustomValidator ID="CustomValidator1" runat="server" ControlToValidate="ListBox1" ErrorMessage="Tienes que seleccionar un elemento de la lista." ClientValidationFunction="ValidarListaSeleccionada" ValidateEmptyText="True"> </asp:CustomValidator>
Importante:
-
ControlToValidate: 😉
-
ClientValidationFunction: La función JavaScript que hemos creado antes.
-
ValidateEmptyText: Para que valide el control aunque no se haya seleccionado.
Y con esto ya hemos creado un validador personalizado para nuestra lista.
Happy Coding