我在网络表单上使用了一堆不同的asp.net验证控件。其中一些将其Text属性设置为“* Error”或“您错过了这些字段”之类的内容。
但是,一些CustomValidator控件具有空白的Text属性。我故意将它们留空,因为我根据哪种情况失败动态添加ErrorMessage。 (CustomValidator可能有许多不同的条件,我设置args.IsValid = false)
发生错误时,我设置的ErrorMessage属性将显示在ValidationSummary和Validator控件内。我不希望这样。我希望能够在ValidationSummary中显示ErrorMessage而不是在BaseValidator.Text属性中显示。
我的第一次尝试是将Text属性设置为空格“”。那没用。
我实施的(现在)是一个显示为背景颜色相同的时期。这是一个黑客 - 我不喜欢它。哎呀,也许这就是我来这里的原因!
以下是代码:
<asp:CustomValidator ID="StackOverflowValidator" runat="server"
Text="."
CssClass="validatorstyle"
Display="Dynamic"
OnServerValidate="validate_AllowedToDoSomething"
ValidationGroup="MainGroup" />
<asp:ValidationSummary ID="mainGroupValidationSummary" runat="server"
ValidationGroup="MainGroup"
DisplayMode="BulletList"
HeaderText="There was an error in saving. Please check the following:" />
在validate_AllowedToDoSomething里面我打电话:
StackOverflowValidator.ErrorMessage = "Custom Error Message #1";
args.IsValid = false;
return;
我得到的是网络表单上的“自定义错误消息#1”两次。提前谢谢!
答案 0 :(得分:9)
只需在BaseValidator上设置display="none"
而不是"dynamic"
,这应该可以解决它。