我不止一次成功地使用了验证器,但经过一些编程后我的验证器无法正常工作。也许我不知道为同一个控件定义2个验证器,但它不能用于一个验证器。控制。这是我的代码的两个例子:
示例1:一个必填字段验证器和一个用于用户名的“最大值”验证器:
<asp:RequiredFieldValidator id="UsernameRequiredValidator" runat="server"
ControlToValidate="UserNameTextbox" ForeColor="red"
Display="Dynamic" ErrorMessage="Required" />
<asp:RangeValidator ID="RangeValidator1" runat="server" ControlToValidate="UsernameTextbox" MinimumValue="1" MaximumValue="20" ForeColor="red"
Display="Dynamic" ErrorMessage="Name must contain maximum 20 characters"></asp:RangeValidator>
示例2:roadaddress的一个“最大值”验证器(字符串):
<asp:RangeValidator ID="RangeValidator9" runat="server" MaximumValue="50" ForeColor="red"
ErrorMessage="Road Address must contain maxmum 50 characters" ControlToValidate="RoadAddressTextbox"></asp:RangeValidator>
我认为问题可能在display属性或causevalidation属性中,我不使用...
答案 0 :(得分:4)
这不是RangeValidator
的用途。 RangeValidator
旨在检查输入以确保它在一定范围内,即确保数字介于1和5之间,日期在特定范围内等等。
您需要的是RegularExpressionValidator
:
<asp:RegularExpressionValidator ID="RegularExpressionValidator1" runat="server"
ControlToValidate="UserNameTextbox"
ErrorMessage="Username must be between 1 and 50 characters"
ValidationExpression="^[a-zA-Z\s]{1,50}">
</asp:RegularExpressionValidator>
编辑:将表达式更新为^[a-zA-Z\s]{1,50}
答案 1 :(得分:3)
RangeValidators不验证输入中的字符数,它们是“Check whether the value of an input control is within a specified range of values。”
您可以在没有验证器的情况下实际执行此操作,方法是在文本框中设置MaxLength
属性,这将限制输入的字符数。
<asp:TextBox ID="UserNameTextbox" MaxLength="50" runat="server"></asp:TextBox>