2012-05-09 12 views
6

Tengo un control personalizado basado en Panel. Es simplemente un panel simple con 3 DropDownLists. Si añado un CompareValidator a mi WebForm y establezca la propiedad ControlToValidate a la ID de mi control personalizado me sale el siguiente error:¿Cómo hacer que un control personalizado sea validable?

Control '{0}' referenced by the ControlToValidate property of '{1}' cannot be validated.

entiendo por qué, la CompareValidator no puede validar con sensatez nada en contra de la Panel. Entonces, ¿qué debo agregar a mi control personalizado para que un validador pueda validarlo?

He intentado agregar una propiedad Text a mi Panel, que devuelve una combinación de las propiedades de texto de las 3 DropDownLists. Sin resultado.

He intentado buscar ciertas interfaces (ITextControl) que los controles validables (TextBox) implementar y agregar a mi control personalizado. Sin resultado.

¿Cómo puedo hacer mi control personalizado basado en un Panel, validable por los validadores de .NET regulares? (RequiredFieldValidator, CompareValidator, etc.)

Respuesta

5

Si no lo tiene, es necesario añadir el atributo ValidationProperty a su clase por lo que sabe que la propiedad que se utilizará para la validación:

[ValidationProperty("Text")] 
[ToolboxData("<{0}:YourCustomControl runat=server></{0}:YourCustomControl>")] 
public class YourCustomControl : WebControl 
... 
+0

Sí, eso ¡Hace el truco! Gracias por tu rápida respuesta. :) Lo aceptaré en unos minutos. – Bazzz

+0

No hay problema. Me alegra que lo hayas hecho funcionar. –

Cuestiones relacionadas