c# - ASP.NET RangeValidator 行为异常

标签 c# asp.net webforms rangevalidator

它的类型属性设置为字符串,最小值 = 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/

相关文章:

c# - 使用 CSS 从 HTML 在 iTextSharp 中呈现 PDF

c# - 在 asp.net 中将字符串转换为日期时间

asp.net-mvc - 为什么此表单不调用 ASP.NET MVC 中的 Controller 操作?

asp.net - ASP.NET 新手 : Webforms vs MVC2

asp.net - 开发速度 - Asp.net 与 Silverlight

c# - ViewModel 的数据更改时,文本框不会更新

c# - Linq 查询和 Foreach 对来自 SQL 数据库的大量记录

c# - Windows 窗体中图像资源的本地化

c# - mysql批量插入一个文本文件

asp.net - 如何修复 "' ddlAssignedTo' 的 SelectedValue 无效,因为它不存在于项目列表中