在ASP.NET中使用ValidationSummary时如何不显示BaseValidator.Text

时间:2009-01-08 19:56:28

标签: c# asp.net vb.net validation customvalidator

我在网络表单上使用了一堆不同的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”两次。提前谢谢!

1 个答案:

答案 0 :(得分:9)

只需在BaseValidator上设置display="none"而不是"dynamic",这应该可以解决它。