我在.NET中验证时遇到问题
我正在使用文本框的服务器端验证,我为此应用了requiredfield和范围验证器。我的问题是我想在同一个地方显示消息,而不是使用
两个消息。
假设我离开了文本框,它说“它是必需的”,如果我输入超出范围的某个值,它说“范围必须是1到100”,但这两个消息都在不同的地方,这似乎不太好。
我不想使用验证摘要,我尝试了“validationGroup”和“Display”属性,但我仍然没有得到解决方案。
任何人都可以有任何想法吗?
<asp:TextBox ID="txtEmpID" runat="server" CssClass ="textbox"></asp:TextBox>
<br />
<asp:RequiredFieldValidator ID="RequiredFieldValidator1" runat="server"
ControlToValidate="txtEmpID" ErrorMessage="Emp ID is Must"
Display ="Dynamic"></asp:RequiredFieldValidator>
<br />
<asp:RangeValidator ID="RangeValidator1" runat="server"
ControlToValidate="txtEmpID" ErrorMessage="Range must be 1 -100"
MaximumValue="100" MinimumValue="1" Type="Integer" Display ="Dynamic"></asp:RangeValidator>
答案 0 :(得分:2)
您可以使用CustomValidator并手动验证它。您将在一个地方和一个验证中获得消息。另一种解决方案是只有RangeValidator并启用它,即使TextBox值为空。如果我没错,ValidateOnEmpty =“true”
答案 1 :(得分:1)
您现在在两个验证器之间有一个硬编码<br />
。删除它(并可能将其添加到第一个验证器的ErrorMessage:ErrorMessage="Emp ID is Must<br />"
)。
您已经拥有Display=Dynamic
,因此非触发验证器不会占用空间。
答案 2 :(得分:-1)
ysrb是对的,您只需要RangeValidator,因为即使文本框保留为空,“Range必须为1 -100”的消息也适用