Подтвердить что ты не робот

Метод проверки диапазона asp.net в текстовом поле

У меня есть asp:textbox с прикрепленным к нему обязательным и допустимым диапазоном, где код выглядит следующим образом:

ASP:

<asp:TextBox ID="textBox1" runat="server" CausesValidation="true"></asp:TextBox>
<asp:RangeValidator ID="rangeValidator1" runat="server" ControlToValidate="textBox1" MaximumValue="1" MinimumValue="0"
     ValidationGroup="valid" ForeColor="Red" ErrorMessage="Out of Range" />
<asp:RequiredFieldValidator ID="requiredValidator1" runat="server" ControlToValidate="textBox1"
     ValidationGroup="valid" ForeColor="Red" ErrorMessage="Cannot be blank" />

И когда страница динамически загружается (после быстрого обратного вызова), у меня есть код, который должен изменить MaximumValue RangeValidator на более конкретное значение. Вот код для этого:

rangeValidator1.MaximumValue = GetMaxValue(params).ToString();

Теперь я установил точку останова, и rangeValidator1.MaximumValue устанавливается правильно, однако, когда страница загружается, и я смотрю на скомпилированный javascript на стороне клиента, кажется, что максимальное значение все равно только 1.

Что меня больше смущает, так это то, что любое целое число вводится, если первая цифра равна "1". Поэтому, если maxValue должен быть чем-то вроде "1234567", "1" будет соответствовать, как и "12345678910". Но "2" не будет. Также не будет "3000" или "46000".

У кого-то еще была аналогичная проблема с RangeValidators в текстовых блоках?

4b9b3361

Ответ 1

RangeValidator обрабатывает проверку для нескольких типов. Убедитесь, что вы задали тип Integer. или то, что когда-либо было подходящим.