【发布时间】:2014-05-22 16:32:22
【问题描述】:
让我首先说明我真正想做的事情:我必须检查一个字段是否有多个“独占”(我会解释)标准,并显示一条验证消息。
这是我的代码:
<asp:TextBox ID="Amount" runat="server" CssClass="field"></asp:TextBox>
<asp:RequiredFieldValidator Text="Amount is required"/>
<asp:CompareValidator Operator="DataTypeCheck" Type="Currency" Text="Amount must be numeric"/>
<asp:CompareValidator Operator="GreaterThanEqual" ValueToCompare="10" Type="Currency" Text="Minimum donation $10.00"/>
<asp:CompareValidator Operator="LessThan" ValueToCompare="10000" Type="Currency" Text="Wow that's too much"/>
为了便于阅读,我省略了一些标签 - 所有验证器都在同一个验证组中,它们都有 ID,ControlToValidate="Amount" Display="Dynamic"。
如果“金额”字段为空白,或其中包含数字,则一切正常。但是,如果我在字段中输入文本:
即使 10,000 和 DataTypeCheck 应该是互斥的,但字符串上的数字比较失败。
我意识到我可以为此使用 CustomValidator,但我希望最终在其单独的 <span> 元素中以不同的方式设置消息的样式。
所以,我的错误(因为它们不是“我真正想做什么?”)的问题是:
- 如何使货币类型的
CompareValidator在文本上不失败? 或 - 如何只显示来自多个验证器的第一条消息? 或
- 我该如何做我想做的事?
【问题讨论】:
-
看起来 CustomValidator 毕竟是您的最佳选择。唯一能阻止你的是一条消息的外观不同 - 它很容易弄清楚。
标签: asp.net validation webforms