0

范围验证器用于字符串、整数和日期。有人可以给我它们的最小值和最大值吗?

4

2 回答 2

1

最小和最大长度是 int 和 double 类型的 euqal 长度...

范围验证器控件是一个验证器控件,用于检查控件值是否在有效范围内。此控件所需的属性是:MaximumValue、MinimumValue 和 Type。

如果 MaximumValue 或 MinimumValue 属性指定的值无法转换为 Type 属性指定的数据类型,RangeValidator 控件将引发异常。

RangeValidator 不是一个很好的验证器来验证字符串的长度。你最好使用 RegularExpressionValidator 来验证它。

http://forums.asp.net/t/1046041.aspx/1?how+to+use+RangeValidator+for+String+type+

于 2012-05-09T07:40:03.300 回答
0

使用该MaximumValue属性指定验证范围的最大值。如果此属性指定的值无法转换为该属性指定的数据类型BaseCompareValidator.Type,则会引发异常。

因此,例如,如果您将 设置为 ,Type如果Integer值大于 ,则会引发异常Int32.MaxValue

如果是字符串,什么是最小值和最大值?

这是 javascript RangeValidator 函数:

function RangeValidatorEvaluateIsValid(val) {
    var value = ValidatorGetValue(val.controltovalidate);
    if (ValidatorTrim(value).length == 0)
        return true;
    return (ValidatorCompare(value, val.minimumvalue, "GreaterThanEqual", val) &&
            ValidatorCompare(value, val.maximumvalue, "LessThanEqual", val));
}

正如您将看到的,它比较字符串的ACSII 代码。'0' 到 '9' 的 ASCII 值是 48 到 57,'a' 到 'z' 的 ASCII 值是 97 到 122 ,'A' 到 'Z' 的 ASCII 值是 65 到 90。所以MinimumValueMaximumValue是验证器有效的这些 ASCII 代码的下限和上限。

function ValidatorCompare(operand1, operand2, operator, val) {
    var dataType = val.type;
    var op1, op2;
    if ((op1 = ValidatorConvert(operand1, dataType, val)) == null)
        return false;   
    if (operator == "DataTypeCheck")
        return true;
    if ((op2 = ValidatorConvert(operand2, dataType, val)) == null)
        return true;
    switch (operator) {
        case "NotEqual":
            return (op1 != op2);
        case "GreaterThan":
            return (op1 > op2);
        case "GreaterThanEqual":
            return (op1 >= op2);
        case "LessThan":
            return (op1 < op2);
        case "LessThanEqual":
            return (op1 <= op2);
        default:
            return (op1 == op2);           
    }
}

http://forums.asp.net/t/1046041.aspx/1?how+to+use+RangeValidator+for+String+type+

RequiredFieldValidator请注意,如果要验证空文本,则需要额外的。

于 2012-05-09T07:59:28.127 回答