如何使RequiredFieldValidator消失然后出现?

时间:2011-07-16 17:27:51

标签: c# .net asp.net validation requiredfieldvalidator

我希望必要的字段验证器只在出现错误时才可见。不是所有的时间..我怎么能这样做?

<asp:RequiredFieldValidator
    runat="server"
    ControlToValidate="Editor1"
    ErrorMessage="fffffff"
    ForeColor="#CC0000"
    Display="Dynamic" />

我运行页面后会立即显示错误消息。我希望每当出现错误时都会显示错误消息。当字段为空时!!

3 个答案:

答案 0 :(得分:1)

当前页面中出现问题的唯一原因是,在页面加载事件中,某个地方Page.Validate()被调用,您需要检查它。

我已经测试了这个样本,并且在页面加载时没有向我发送验证器。

你可以在一个单独的新页面中尝试这个吗?

<asp:TextBox ID="TextBox1" runat="server"></asp:TextBox><asp:RequiredFieldValidator ID="RequiredFieldValidator1"
runat="server"
ControlToValidate="TextBox1"
ErrorMessage="fffffff"
ForeColor="#CC0000"
Display="Dynamic" />
    <asp:Button ID="Button1" runat="server" Text="Button" />

如果你检查上面提到的例子,它不会在页面加载时触发验证器,但你可以添加这个代码,你会发现,验证器是在页面加载时触发的。

protected void Page_Load(object sender, EventArgs e)
{
    Page.Validate();
}

请注意,我已在新页面上测试了这两种方案,只需尝试一下即可了解问题。

答案 1 :(得分:0)

如果您考虑一下,在页面加载时该字段为空......因此出错。为requiredfieldvalidator提供InitialValue=""的属性,这应该可以为您提供所需的内容。

答案 2 :(得分:0)

将所需字段验证器的显示属性设置为动态