2009-05-28 8 views
1

Je cherche des idées sur la façon d'utiliser un contrôle de validation personnalisé pour un contrôle asp: ChangePassword. Une simple tentative pour définir la propriété "ControlToValidate" sur le contrôle asp: CustomValidator aboutit à:Pouvez-vous utiliser un asp: customvalidator avec un contrôle asp: ChangePassword?

Le contrôle 'changePassword1' référencé par la propriété ControlToValidate de 'passwordValidation' ne peut pas être validé.

Merci.

Répondre

1

Vous pouvez valider n'importe quoi avec CustomValidator si vous utilisez javascript pour obtenir les contrôles directement. Ne pas pouvoir définir ControlToValidate signifie que vous n'obtenez pas les données dans EventArgs et que vous devez les récupérer vous-même.

0

Vous devez modifier le contrôle ChangePassword pour qu'il devienne un contrôle basé sur un modèle afin d'utiliser un validateur personnalisé. Veillez à définir le groupe de validation du validateur personnalisé sur le même modèle que les autres contrôles du modèle. Alternativement, le contrôle ChangePassword a une propriété NewPasswordRegularExpression qui peut répondre à vos besoins.

2

Le problème fondamental à l'origine de ce message d'erreur est que le contrôle ChangePassword n'a pas d'attribut "ValidationProperty" défini au niveau de la classe. Comme mentionné précédemment, vous pouvez simplement laisser de côté l'attribut ControlToValidate de votre CustomValidator. C'est probablement le meilleur plan pour le contrôle ChangePassword.

Si vous essayez d'utiliser CustomValidator avec un contrôle personnalisé, définissez la ValidationProperty sur la classe de votre contrôle personnalisé:

[DefaultProperty("StateName"), ValidationProperty("StateName")] 
public class StateBox: CompositeControl 
{ 
    ... 

Si vous souhaitez utiliser CustomValidator avec un contrôle de la bibliothèque qui ne possède pas l'attribut ValidationProperty set, dérive une classe du contrôle de bibliothèque et définit ValidationProperty sur votre classe dérivée.