Comment étendre un compareValidator pour que je puisse vérifier, si l'utilisateur a écrit du texte dans ControlToValidate, il doit également écrire du texte dans ControlToCompare.Extension de Asp.net CompareValidator
3
A
Répondre
1
Essayez:
public class ExtendedCompareValidator : CompareValidator
{
protected override void OnPreRender(EventArgs e)
{
if (!string.IsNullOrEmpty(this.ControlToValidate) && string.IsNullOrEmpty(this.ControlToCompare))
throw new HttpException("You have to set the 'ControlToCompare' property.");
base.OnPreRender(e);
}
}
Web.Config
<pages>
<tagMapping>
<add tagType="System.Web.UI.WebControls.CompareValidator, System.Web, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a" mappedTagType="MyWebApp.ExtendedCompareValidator, MyWebApp"/>
</tagMapping>
</pages>
1
Vous n'avez pas besoin d'étendre CompareValidator
pour résoudre ce problème. Utilisez RequiredFieldValidator
sur les deux contrôles pour valider qu'ils ne sont pas vides. Cette approche a l'avantage de valider du côté client ainsi évitant un aller-retour au serveur.
Comment vais-je utiliser ce validateur?? –
coure2011
Vous n'avez pas besoin de changer quoi que ce soit. Utilisez le contrôle 'CompareValidator' traditionnel et ASP.NET le mappe avec un nouveau. –
Non ça ne fonctionne pas. Il a le même comportement que le contrôle CompareValidator normal. – coure2011