【发布时间】:2010-11-26 12:59:43
【问题描述】:
是否可以将数字验证放在 asp.net 文本框中的必填字段验证器中?
【问题讨论】:
标签: asp.net validation
是否可以将数字验证放在 asp.net 文本框中的必填字段验证器中?
【问题讨论】:
标签: asp.net validation
您应该使用CompareValidator,例如:
<asp:TextBox ID="txt" runat="server />
<asp:CompareValidator ID="cv" runat="server" ControlToValidate="txt" Type="Integer"
Operator="DataTypeCheck" ErrorMessage="Value must be an integer!" />
如果您想要简单的数据类型检查,这是最自然的选择。否则,如果您想验证范围,请使用 RangeValidator 建议。如果您需要某种模式,请使用RegularExpressionValidator。
请注意,您还需要添加 RequiredFieldValidator,因为某些验证器将允许空白条目。
【讨论】:
RequiredFieldValidator?它可以防止空白条目。
实际上,您只需要一个正则表达式验证器即可使用ValidationExpression = "^\d+?$"
【讨论】:
ValidationExpression = @"^\d+?$"
也许您可以使用附加到该文本框的 RangeValidator,将 Type 设置为 Integer 或 wathever。
【讨论】:
另一种可能性是使用 RegexpValidator 并添加一个正则表达式,以确保其中有 1 个或多个数字,例如:
RegularExpressionValidator regexpvalidator = new RegularExpressionValidator();
regexpvalidator.ID = "RegularExpressionValidator1";
regexpvalidator.ValidationExpression = "\d+";
regexpvalidator.ControlToValidate = "YourControl";
regexpvalidator.ErrorMessage = "Please specify a digit";
regexpvalidator.SetFocusOnError = true;
【讨论】:
不,RequiredFieldValidator 只能验证该字段是否包含某些内容。
如果您想验证该字段是否仅包含数字,您可以使用带有模式 "\d+" 的 RegularExpressionValidator。
【讨论】:
RequiredFieldValidator 只检查字段是否填写。它不关心什么。
您将需要一个额外的 CompareValidator,它的 Operator 设置为 DataTypeCheck,Type 设置为 Integer。 请注意,两者都需要:CompareValidator 将忽略空输入。
【讨论】:
是的,像这样:
<asp:TextBox ID="tb" runat="server"></asp:TextBox>
<asp:RangeValidator ControlToValidate="tb" Type="Integer"></asp:RangeValidator>
【讨论】:
MaximumValue 相关的异常。