RangeValidator не может рассчитывать? - PullRequest
4 голосов
/ 21 июня 2011

Я пытаюсь проверить длину строки в TextBox. Элементы управления на странице определены следующим образом:

<asp:TextBox runat="server" ID="TB" />
<asp:RangeValidator runat="server" ID="RV" 
MinimumValue="3" MaximumValue="20" 
ControlToValidate="TB" Type="String" />

Но при запуске страницы возникает ошибка времени выполнения

MaximumValue 20 не может быть меньше чем минимальное значение 3

Ответы [ 3 ]

13 голосов
/ 21 июня 2011

Вы упоминаете тип incorrect, он должен быть Type="Integer" вместо Type="String"

4 голосов
/ 21 июня 2011

Просто используйте свойство MaxLength TextBox.Это используется для получения / установки максимального количества символов, допустимого в текстовом поле.

Для минимальной длины вам необходимо использовать CustomValidator.В этом вызове функция js, которая проверяет длину строки.

Попробуйте это:

<asp:TextBox runat="server" ID="TB" />    
<asp:CustomValidator runat="server" ID="CustomValidator1" ControlToValidate="TB"
    Text="The text length should be between 3 and 20" 
    ClientValidationFunction="clientValidate" Display="Dynamic">
</asp:CustomValidator>


<script type="text/javascript">
function clientValidate(sender, args) {
    if (args.Value.length < 3 ||args.Value.length > 20) {
        args.IsValid = false;
    }
}

3 голосов
/ 21 июня 2011

Вы не можете проверить длину TextBox, используя RangeValidator !!RangeValidator используется для проверки значения поля, а не длины этого значения.

Для этого вы можете использовать другие способы как CustomValidator.

...