В asp.net мне нужно добавить валидатор в текстовое поле, которое заставляет ввод быть числами - PullRequest
2 голосов
/ 22 апреля 2009

В asp.net мне нужно добавить валидатор в текстовое поле, которое заставляет ввод быть числами.

Это встроено?

Я уже добавил обязательное поле проверки в текстовое поле.

Ответы [ 5 ]

7 голосов
/ 22 апреля 2009

Вы можете использовать Regex Validator, чтобы убедиться, что текст числовой

Я думаю, что регулярное выражение будет

[0-9]*

, например

<asp:TextBox ID="tbxNumbers" runat="server" />
<asp:RegularExpressionValidator ID="revNumericValidator" runat="server" 
                ValidationExpression="^[0-9]*$" ControlToValidate="tbxNumbers" ErrorMessage="Must be Numeric" />

EDIT: Как отмечали и другие два автора, вы также можете использовать \d для представления числового символа

4 голосов
/ 22 апреля 2009
<asp:RegularExpressionValidator runat="server"
            ControlToValidate="numbersOnlyTextBox" 
            ErrorMessage="Enter only numeric characters." 
            ValidationExpression="^\\d+$" />
2 голосов
/ 22 апреля 2009

Использовать валидатор диапазона.

<asp:TextBox ID="MyTextBox" MaxLength="4" Width="75" 
   Text="0" runat="server"></asp:TextBox>
<asp:RangeValidator ID="MyRangeValidator"  Display="Static" Type="Integer"
   MaximumValue="9999" MinimumValue="0" EnableClientScript="true" 
   ControlToValidate="MyTextBox" runat="server" SetFocusOnError="true" 
   ErrorMessage="Ooops"></asp:RangeValidator>

Это позволяет вам использовать числа с десятичными разрядами (используя Type = "Double" или "Currency") или другие виды чисел, которые распознает Windows.

Проверьте MSDN для получения дополнительной информации о Контроль валидатора диапазона .

0 голосов
/ 18 мая 2011

Чтобы обеспечить лучший пользовательский опыт, добавьте еще один расширитель AjaxToolkit FilteredTextBox с FilterType «Custom, Numbers» или просто «Numbers». Первый вариант для случаев, когда вы хотите иметь возможность указывать десятичные точки и отрицательные числа. В этом случае вы также должны указать атрибут ValidChars что-то вроде «-.». Это остановит пользователя от ввода символов, которые не будут составлять действительное число, такое как -123.45. Обратите внимание, что это не мешает пользователю вводить '-' & '.' в неправильных местах, например «2 -..- 3» еще можно ввести. Вам понадобятся валидаторы, упомянутые в других ответах, чтобы поймать эти случаи.

<ajaxToolkit:FilteredTextBoxExtender ID="ftbe" runat="server"
    TargetControlID="numbersOnlyTextBox"         
    FilterType="Custom, Numbers"
    ValidChars="-." />

Или

<ajaxToolkit:FilteredTextBoxExtender ID="ftbe" runat="server"
    TargetControlID="numbersOnlyTextBox"         
    FilterType="Numbers" />
0 голосов
/ 22 апреля 2009

Я думаю, что здесь должно быть больше разъяснений относительно требований. О каких числах мы говорим? Положительные целые числа? Любое целое число? Число с десятичным знаком? А как насчет запятых в числе (1000)?

Я рекомендую RegularExpressionValidator выполнять вашу работу, но эти вопросы имеют значение, когда речь идет о том, какой RegEx вы используете.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...