2012-05-09 14 views
6

Ho un controllo personalizzato basato su Panel. È semplicemente un pannello semplice con 3 DropDownList. Se posso aggiungere un CompareValidator al mio Web Form e impostare la proprietà ControlToValidate per l'ID del mio controllo personalizzato ricevo il seguente errore:Come rendere un controllo personalizzato validabile?

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

capisco perché, il CompareValidator non può sensibilmente convalida nulla contro il Panel. Quindi, cosa devo aggiungere al mio controllo personalizzato per consentire a un validatore di essere in grado di convalidarlo?

Ho provato ad aggiungere una proprietà Text al mio pannello che restituisce una combinazione delle proprietà Text dei 3 DropDownList. Inutile

Ho provato a cercare determinate interfacce (ITextControl) che i controlli validabili (TextBox) implementano e li aggiungo al mio controllo personalizzato. Inutile

Come posso rendere il controllo personalizzato basato su un pannello, validabile dai normali validatori .net? (RequiredFieldValidator, CompareValidator, etc.)

risposta

5

Se non lo avete già, è necessario aggiungere l'attributo ValidationProperty alla classe in modo che sappia quale la proprietà da utilizzare per la convalida:

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

Sì, fa il trucco! Grazie per la pronta risposta. :) Accetterà tra qualche minuto. – Bazzz

+0

Nessun problema. Sono contento che tu abbia funzionato. –

Problemi correlati