2010-06-12 3 views

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> 
+0

Comment vais-je utiliser ce validateur? ? – coure2011

+0

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. –

+0

Non ça ne fonctionne pas. Il a le même comportement que le contrôle CompareValidator normal. – coure2011

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.