[Sharepoint] Ajout d'un control de validation de mail dans une webpart

Publié le 10 octobre 2008 par Jeremy.jeanson

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);