7

我意识到有很多类似的帖子,但是不幸的是,我还没有找到对我有用的帖子。基本上,我有一个 asp:customvalidator,我试图将它与其他验证器一起添加到验证组中,以便所有错误消息都出现在同一个警报中。这是自定义验证器

<asp:TextBox runat="server" ID="txtVideo1Url"  Columns="20" Width="98%" />
<asp:CustomValidator runat="server" ID="valURL1" ControlToValidate="txtVideo1Url" OnServerValidate="txtVideo1Url_ServerValidate" Display="None" ValidationGroup="submission" />

这是事件

    protected void txtVideo1Url_ServerValidate(object sender, ServerValidateEventArgs e)
    {
        e.IsValid = false;
        valURL1.Text = "FAIL!";
    }

该事件根本没有触发,我不知道为什么。一旦我可以触发事件,我就可以将一些实际逻辑放入其中,哈哈

更新:我注意到我现在能够触发事件,但是验证摘要设置为在消息框中显示所有错误,并且此错误不会添加到消息框中。

4

4 回答 4

27

请记住在 CustomValidator 上设置此属性...

ValidateEmptyText="True"
于 2013-07-17T09:07:16.937 回答
11

您需要设置 to 的属性CausesValidation,如下所示:TextBoxtrue

<asp:TextBox runat="server" ID="txtVideo1Url"  Columns="20" Width="98%" CausesValidation="true" />
于 2013-06-28T15:13:01.197 回答
1

You will have to add ValidationGroup="submission" to the ASP.NET control that will fire the postback.

于 2013-06-28T15:41:42.903 回答
1

如果您的 ASPx 中的其他验证器未进行验证,则不会触发 CustomValidators。您可能需要使用您的特定验证组强制执行 Page.Validate("something")。我建议查看 OnTextChanged 事件以强制页面验证。

于 2016-02-18T01:05:52.633 回答