2010-08-09 3 views
1

J'avais une page dotnet avec quelques boîtes de saisie et un tas de validateurs qui fonctionnaient correctement. Cependant, j'ai décidé de le réorganiser de telle sorte que certaines fonctionnalités ont été regroupées dans des contrôles web à la place. Maintenant, afin de vérifier la validation avant de continuer, j'utilise Page.IsValid dans l'événement click button, car le bouton qui complète le formulaire n'est plus dans le même contrôle web que les boîtes de saisie. Cependant, même si les validateurs fonctionnent toujours pour le contrôle web lui-même (les postbacks provenant d'autres parties du même webcontrol déclenchent les validateurs comme prévu), ils semblent toujours retourner true pour Page.IsValid, même si le contenu n'est pas valide.Les validateurs dans Webcontrol ne se déclenchent pas Page.IsValid

Les WebControls n'ont pas leur propre propriété IsValid - pourquoi les valideurs ne déclenchent-ils pas la page.IsValid plus?

+0

Avez-vous résoudre ce problème? –

+0

Oui. J'ai dû déclencher manuellement le groupe de validation avant d'utiliser page.isvalid. i.e .: Page.Validate ("link") If Page.IsValid Then ... –

+0

OK! Bon à savoir. Avez-vous essayé le ValidationPropertyAttribute? –

Répondre

0

Avez-vous examiné l'utilisation d'un ValidationPropertyAttribute sur votre classe de contrôle Web personnalisée? Vous pouvez l'utiliser pour définir que certaines propriétés nécessitent une validation.

De MSDN:

[ValidationPropertyAttribute("Message")] 
public class MessageControl : Label 
{ 
    private int _message = 0; 
    public int Message 
    { 
    get 
    { 
     return _message; 
    } 
    set 
    { 
     _message = value; 
    } 
    } 
} 

Voir aussi http://msdn.microsoft.com/en-us/library/system.web.ui.validationpropertyattribute.aspx

Questions connexes