在ASP.Net中,如何将验证消息限制为仅一个?
规则:用户必须输入0到1000之间的数字。
当前[不受欢迎]行为:
用户类型1001:验证者说“请输入1000以下的非负数” 用户类型-1:验证者说“请输入1000以下的非负数”
所需行为:
用户类型1001:验证者说“请输入1000以下的数字”
用户类型-1:验证者说“请输入非负数”
换句话说,我如何使用两个asp:RangeValidators,其不允许的值相交但只打开所需的值?我不想在服务器上处理ServerValidate事件。
没有客户端代码是否可行?
答案 0 :(得分:1)
你的'期望'行为有可能有些恼人:
我要问的是:现有行为有什么问题,用户被告知实际规则?
答案 1 :(得分:1)
您可以使用CompareValidator检查该值是否小于零,并使用RangeValidator
检查该值是否介于-2147483647和1000之间。
<asp:CompareValidator Id="IsNotNegativeValidator"
ControlToValidate="TextBox1"
ValueToCompare="-1"
Operator="GreaterThan"
Type="Integer"
Text="Please put in a non-negative number"
runat="server"/>
<asp:RangeValidator Id="IsLessThanOneThousandValidator"
ControlToValidate="TextBox1"
MinimumValue="-2147483647"
MaximumValue="1000"
Type="Integer"
Text="Please put in a number beneath 1000"
runat="server"/>
(在这种特殊情况下,它看起来像一个RangeValidator
,其中包含“请输入0到1000之间的数字”这一消息,可以减少用户的挫败感。)
答案 2 :(得分:0)
我发现这样做的最好方法是独占使用RegularExpressionValidator。您可以使用适当的正则表达式验证任何内容。