它的类型属性设置为字符串,最小值 = 0,最大值 = 100。
我想确保输入的数据不会超过数据库中定义的列长度。
现在当我测试它时,即使我输入一两个字母,它也总是显示错误消息!
最佳答案
您应该为此使用 RegularExpressionValidator。 RangeValidators 不适用于字符串长度。将 ValidationExpression 设置为 .?
之类的内容,或者您可以将其缩小为 \S?
或 \w?
之类的内容,如果您愿意.
此外,如果您正在使用不处于多行模式的 TextBox(如果最大字符是一个字符,则没有理由这样做),您只需将 MaxLength="1"
设置为控件,您根本不需要验证器。
编辑:如果您确实想在多行文本框上指定大于 1 的最大长度,您可以使用如上所述的 RegularExpressionValidator,但设置 ValidationExpression="。{0,100} "
最大长度为 100。More information on regex quantifiers is available here .
如果您有一个单行文本框,只需将其 MaxLength 属性设置为所需的最大值,它不会允许任何比这更长的内容;不需要验证器。
如果您想做任何涉及在用户键入时实时检测长度的事情,那就更复杂了,您将需要 JavaScript。您还应该在服务器端验证输入,因为任何关闭了 JavaScript 的用户都可以绕过客户端验证。
关于c# - ASP.NET RangeValidator 行为异常,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5644073/