Dans ma recherche de "l' éternellement plus simple"... (oui je n'aime pas bâtir des usines à gaz). Voici un exemple de code mettant en oeuvre des controls de validation dans une Webpart.
Note: la Webpart contient deux TextBox et trois controls de validation:
1. Valide le fait que l'utilisateur ait fait une saisie.
2. Valide le bon format du mail saisi.
3. Valide le fait que les deux saisies soient identiques.
// Champs requis
RequiredFieldValidator requiredFieldValidator = new RequiredFieldValidator()
{
Display = ValidatorDisplay.Dynamic,
ControlToValidate = this._TextBoxMail1.ID,
ErrorMessage = "Un e-mail doit être saisi.<br/>",
};
// Validation de l'email
RegularExpressionValidator regularExpressionValidator = new RegularExpressionValidator()
{
Display = ValidatorDisplay.Dynamic,
ControlToValidate = this._TextBoxMail1.ID,
ValidationExpression = @"^([a-zA-Z0-9_\-\.]+)@((\[[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\.)|(([a-zA-Z0-9\-]+\.)+))([a-zA-Z]{2,4}|[0-9]{1,3})(\]?)$",
ErrorMessage = "L'e-mail saisie est invalide.<br/>"
};
// Comparaison des champs
CompareValidator compareValidator = new CompareValidator()
{
Display = ValidatorDisplay.Dynamic,
ControlToValidate = this._TextBoxMail1.ID,
ControlToCompare = this._TextBoxMail2.ID,
ErrorMessage = "Les deux e-mail saisis ne sont pas identiques.<br/>"
};
// Ajout et mise en forme
this._ViewEdition.Controls.Add(this._LabelMailActuel);
this._ViewEdition.Controls.Add(this._TextBoxMail1);
this._ViewEdition.Controls.Add(this._TextBoxMail2);
this._ViewEdition.Controls.Add(requiredFieldValidator);
this._ViewEdition.Controls.Add(regularExpressionValidator);
this._ViewEdition.Controls.Add(compareValidator);