1

它的类型属性设置为字符串,最小值 = 0,最大值 = 100。

我想确保输入的数据不会超过数据库中定义的列长度。

现在当我测试它时,即使我输入一两个字母,它也总是显示错误消息!

4

2 回答 2

3

您应该为此使用 RegularExpressionValidator。RangeValidators 不适用于字符串长度。将 ValidationExpression 设置为类似.?,或者您可以根据需要将其缩小为类似\S?or\w?或类似的内容。

此外,如果您使用的 TextBox 不在 MultiLine 模式下(如果最大值为一个字符,则没有理由这样做),您只需MaxLength="1"在控件上进行设置,您根本不需要验证器。

编辑:如果您确实想在多行 TextBox 上指定大于 1 的最大长度,则可以使用上述的 RegularExpressionValidator,但将ValidationExpression=".{0,100}"最大长度设置为 100。有关正则表达式量词的更多信息可在此处获得

如果您有一个单行文本框,只需将其 MaxLength 属性设置为所需的最大值,它不会允许超过此值的任何内容;不需要验证器。

如果您想做任何涉及在用户键入时实时检测长度的事情,那就更复杂了,您将需要 JavaScript。您还应该在服务器端验证输入,因为任何关闭 JavaScript 的用户都可以绕过客户端验证。

于 2011-04-13T03:32:12.110 回答
1

将控件上的“MaxLength”属性设置为 1。此MSDN 页面描述了该属性及其用法。

RangeValidator 验证输入的值而不是长度,因此您使用验证器将有效输入限制为 {0, 1}。

于 2011-04-13T03:32:59.807 回答