60 votes

asp.net de validation pour que la zone de texte a des valeurs entières

J'ai un requis validation de l'installation sur une zone de texte, mais je dois assurez-vous qu'il est un entier également.

comment puis-je faire cela?

122voto

bdukes Points 54833

Si tout ce que vous êtes inquiète, c'est que le champ contient un nombre entier (c'est à dire, pas concerné avec une fourchette), puis ajouter un CompareValidator avec Operator propriété a la valeur DataTypeCheck:

<asp:CompareValidator runat="server" Operator="DataTypeCheck" Type="Integer" 
 ControlToValidate="ValueTextBox" ErrorMessage="Value must be a whole number" />

Si il y a une plage spécifique de valeurs valides (il y a probablement), vous pouvez utiliser un RangeValidator, comme suit:

<asp:RangeValidator runat="server" Type="Integer" 
MinimumValue="0" MaximumValue="400" ControlToValidate="ValueTextBox" 
ErrorMessage="Value must be a whole number between 0 and 400" />

Ces validera uniquement si il y a du texte dans la zone de texte, de sorte que vous aurez besoin de garder l' RequiredFieldValidator il y, trop.

Comme @Mahin dit, assurez-vous de vérifier l' Page.IsValid de la propriété du côté du serveur, sinon le validateur ne fonctionne que pour les utilisateurs avec JavaScript activé.

9voto

Shinigamae Points 383

Cela fonctionne bien pour moi:

<asp:RegularExpressionValidator ID="RegularExpressionValidator1" runat="server"
     ControlToValidate="YourTextBoxID"
     ErrorMessage="Only numeric allowed." ForeColor="Red"
     ValidationExpression="^[0-9]*$" ValidationGroup="NumericValidate">*
</asp:RegularExpressionValidator>

Je pense que vous devriez ajouter ValidationGroup="NumericValidate" de votre bouton soumettre aussi.

5voto

Brandon Points 35624

Utilisation Int32.TryParse.

 int integer;
 Int32.TryParse(Textbox.Text, out integer)

Elle renvoie un booléen, donc vous pouvez voir si l'entrée d'un entier valide.

2voto

Matthew Jones Points 13864

Joindre une Expression Régulière du programme de validation de la zone de texte et de rendre son expression est celle-ci:

^\d+$

Et de faire de votre côté serveur de validation de trop, bien sûr.

2voto

bechbd Points 1777

Il ya plusieurs façons que vous pouvez gérer cela. Vous pouvez ajouter un RequiredFieldValidator ainsi que d'un RangeValidator (si cela fonctionne pour votre cas) ou vous pouvez ajouter un CustomFieldValidator.

Lien vers le CustomFieldValidator: http://msdn.microsoft.com/en-us/library/system.web.ui.webcontrols.customvalidator%28VS.71%29.aspx

Lien vers l'Article MSDN sur ASP.NET Validation: http://msdn.microsoft.com/en-us/library/aa479045.aspx

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X