Al seleccionar un campo de un combo Custom Control, me muestra los errores de validacion de otras columnas del formulario - Blog de David Alonso. Microsoft SharePoint, Office 365, Azure y otras tecnologías Microsoft

Blog de David Alonso. Microsoft SharePoint, Office 365, Azure y otras tecnologías Microsoft

Microsoft SharePoint, Azure, Office 365

lunes, 1 de octubre de 2012

Al seleccionar un campo de un combo Custom Control, me muestra los errores de validacion de otras columnas del formulario

Para situarnos, me he descargado un Custom Control de Codeplex:

http://cascadefilterlookup.codeplex.com/

Este Custom Control, permite generar campos en el formulario de la lista de tipo lookup:
  • buscando listas de cualquier sitio (saltandose la restriccion de listas de un solo sitio)
  • Realizando un filtro caml para filtrar los resutlados que se muestran.
  • Permitiendo realizar combos en cascada. Para ello:
    • Se introduce el nombre del primer combo (Padre) y le introducimos si este va tener un padre (no) y un hijo(poner el nombre que posteriormente le daremos al hijo. Para el jio ponemos el nombre del padre y el que hemos puesto anteriormente para el hijo.
    • En ambos hay que seleccionar El campo Value, el campo que muestra el combo, y el campo que relaciona uno con otros.


Para que se relacionen, ambos combos tienen que alimentarse de una lista, pero el segundo (el hijo) tiene que tener ademas un campo de tipo lookup normal (busqueda) asociado con el padre. Este será el campo que filtre. Acordarse despues que el campo que hay que seleccionar en el padre para filtrar es el mismo que se muestre en la columna lookup de la lista de hijos.
Ahora llegamos al problema para el cual he escrito el post. Con este campo, cada vez que selecciono un valor en los combos para que alimente los combos hijo, me muestra los errores de validacion de cualquier otro campo del formulario que no sean los combos.

Para solucionar esto:
  • Busque en el codigo el DropDownList que pinta el combo. Se llama (CascadingDropDownList)
  • y modifico donde aparece this.CascadingDropDownList.CausesValidation = true; por this.CascadingDropDownList.CausesValidation = false;


Si miramos la especificacion de CausesValidation en msdn : http://msdn.microsoft.com/es-es/library/system.web.ui.webcontrols.listcontrol.causesvalidation.aspx nos dice lo siguiente:
Obtiene o establece un valor que indica si se realiza la validación cuando se hace clic en un control derivado de la clase ListControl. Es decir, si es true, validará los campos de la pagina.

Con esto estaria solucionado.

Un saludo

No hay comentarios:

Publicar un comentario