RangeValidator不能算?

时间:2011-06-21 12:45:34

标签: .net asp.net validation rangevalidator

我正在尝试验证TextBox中字符串的长度。页面上的控件定义如下:

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

但是当页面运行时出现运行时错误

  

MaximumValue 20不能少   而不是MinimumValue 3

3 个答案:

答案 0 :(得分:12)

你提到incorrect类型,它应该是Type="Integer"而不是Type="String"

答案 1 :(得分:4)

只需使用TextBox的MaxLength属性。这用于获取/设置文本框中允许的最大字符数。

对于最小长度,您需要使用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;
    }
}

答案 2 :(得分:3)

您无法使用TextBox验证RangeValidator的长度! RangeValidator用于验证字段的值,而不是此值的长度。

为此,您可以使用其他方式CustomValidator