Marc Rubiño

ASP.NET, C#, AJAX.NET, JavaScript, etc.

Como Validar un ListBox (CustomValidator)

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

Cross-posting http://lonetcamp.com/

 

 

Posted: 25/9/2008 13:16 por Marc Rubiño | con 10 comment(s)
Archivado en: ,
Comparte este post:

Comentarios

Marcus Wallace ha opinado:

Como siempre tus conocimientos me son de gran ayuda, gracias por compartirlos.

Un Saludo.

# September 25, 2008 3:15 PM

José A. Fernández ha opinado:

Muy bueno Marc, como siempre!

# September 25, 2008 6:07 PM

Marc Rubiño ha opinado:

Gracias a los dos por pasaros por este sitio ;-)

Saludos.

# September 25, 2008 9:32 PM

Juan Ricardo Gonzalez ha opinado:

Necesito hacer lo mismo con un CheckList, me pude dar alguna idea

# March 13, 2009 3:35 PM

oO ha opinado:

Podrias subir todo el codigo ?

# November 26, 2010 6:38 AM

Marc Rubiño ha opinado:

Este es todo el código que necesitas.

Tienes el script que puedes copiar en tu página y en el validador pones el nombre de la función del script en ClientValidationFunction="ValidarListaSeleccionada"

Con eso lo tienes todo.

Saludos.

# November 26, 2010 8:26 AM

Oo ha opinado:

pero es que sale esto "Element 'CustomValidator' is not known element.this can occur if there is compilation error in web site or web.config file is missing.

gracias por la respuesta tan rapida!

saludos

# November 26, 2010 4:50 PM

oO ha opinado:

oh sorry ya vi que era haha

# November 26, 2010 7:48 PM

Ignacio ha opinado:

Hola, he estado leyendo este articulo y me parece muy interesante, y me ha servido de mucho, pero no le encuentro la forma de validar un listbox que tiene forma de checklist. ¿tiene alguna idea de como hacerlo?

# February 2, 2011 6:30 PM

Marc Rubiño ha opinado:

# February 2, 2011 9:13 PM