Traduction▲
Cet article est la traduction la plus fidèle possible de l'article original de Christian Wenz: Allowing Only Certain Characters in a Text Box
Présentation▲
Les contrôles ASP.NET de validation peuvent faire en sorte que seuls certains caractères soient autorisés dans les saisies utilisateur. Toutefois, ils ne peuvent pas empêcher les utilisateurs de taper des caractères invalides et d'essayer de soumettre le formulaire.
Étapes▲
Le Control Toolkit ASP.NET AJAX contient le contrôle FilteredTextBox qui étend les fonctionnalités d'une zone de texte.
Une fois activé, seuls certaines caractères peuvent être saisis dans le champ.
Pour cela, nous avons besoin dans un premier temps du contrôle ASP.NET AJAX ScriptManager qui charge les bibliothèques JavaScript qui sont aussi utilisés par le ASP.NET AJAX Control Toolkit:
<asp:
ScriptManager ID
=
"asm"
runat
=
"server"
/>
Ensuite, nous avons besoin d'une zone de texte:
Enfin, le contrôle FilteredTextBoxExtender prend soin de limiter les caractères que l'utilisateur est autorisé à saisir. Tout d'abord, définissez l'attibut TargetControlID à la valeur de l'identifiant du contrôle TextBox. Ensuite, choisissez l'une des valeurs suivantes pour FilterType:
- Custom : par défaut, vous devez fournir une liste des caractères valides.
- LowercaseLetters : lettes minuscules uniquement
- Numbers : chiffres uniquement
- UppercaseLetters : lettres majuscules uniquement
Si l'attribut Custom est utilisé, la propriété ValidChars doit être définie et doit fournir une liste de caractères autorisés.
De plus, si vous essayez de coller du texte dans la zone, tous les caractères non valides seront supprimés.
Voici le code pour le contrôle FilteredTextBoxExtender qui permet uniquement la saisie de chiffres (ceci aurait également été possible en utilisant FilterType="Numbers") :
<ajaxToolkit:
FilteredTextBoxExtender ID
=
"ftbe"
runat
=
"server"
TargetControlID
=
"TextBox1"
ValidChars
=
"1234567890"
/>
Exécutez la page et essayer de saisir une lettre. Si JavaScript est activé, ce ne sera pas possible. Seulement les chiffres apparaissent sur la page. Mais notez que la protection offerte par FilteredTextBox n'est pas l'épreuve des balles : si JavaScript est désactivé, n'importe quelle donnée peut être saisie dans la zone de texte, vous devez donc utiliser des moyens suplémentaires de validation, c'est-à-dire les contrôles de validation d'ASP.NET.