2009-08-27 16 views
1

J'ai créé un modèle d'entrée pour les données qui est répété plusieurs fois. Maintenant, je veux m'assurer qu'au moins un de ces éléments est rempli.Validation ASP.net à partir de codebehind

la façon dont je fais cela est d'utiliser la propriété Count d'une liste générique Liste pour voir combien sont utilisés (il y a une certaine logique dans mon contrôle que me permet juste de choisir les entrées qui sont réellement utilisées).

Est-il possible que je peux ajouter quelque chose à la ValidationSummary de la page pour informer l'utilisateur que au moins un itme doit être rempli. je veux faire le compte-chèque dans le code derrière ...

if (EnteredClasses.Count > 0) 
{ 
    //do stuff here 
} 
else 
{ 
    //show validation error 
} 

Répondre

2

Je voudrais utiliser le contrôle CustomValidator, en ligne avec la fonction ServerValidate et également vérifier le Page.IsValid. Le message d'erreur de votre contrôle CustomValidator s'affichera dans le résumé de validation si la fonction ServerValidate définit l'args.IsValid sur false.

Andrew

+0

Je ne savais pas que customvalidators n'avait pas l'exigence ControlToValidate jusqu'à présent, merci :) –

0

Je tricherais et fusionnerais deux méthodes. Selon votre question, vous semblez avoir besoin de l'utilisation du résumé de validation, vous avez donc besoin de la validation de base d'asp. Ensuite, vous devez utiliser un validateur personnalisé.

Le problème avec le validateur personnalisé, est que vous devez l'attacher à un contrôle particulier, puis mettre en œuvre la méthode JavaScrip

function ClientValidate(source, agruments) 
    { 
     // Do your check here where source is the span for the validator and 
     // argument is an object with .value the value of the control to which 
     // the validator is attached and .isvalid that indicate if the validation 
     // checks out (that's what you set to true or false) 
    } 

Le problème si vous souhaitez valider plusieurs éléments non Justė un. donc j'implémenterais cette méthode et j'ignorerais arguments.value pour ensuite utiliser jQuery pour vérifier tout votre formulaire et faire la validation dont vous avez besoin, puis définir isvalid.

Questions connexes