自定义验证器未触发

时间:2013-06-28 15:07:20

标签: c# asp.net validation

我意识到有很多类似的帖子,但是我还没有找到一个对我有用的帖子。基本上,我有一个asp:customvalidator,我试图用其他验证器添加到验证组,以便所有错误消息出现在同一个警报中。这是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!";
    }

事件根本没有发射,我不明白为什么。一旦我可以获得事件触发,我可以将一些实际逻辑放入其中,lol

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

4 个答案:

答案 0 :(得分:21)

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

ValidateEmptyText="True"

答案 1 :(得分:9)

您需要将CausesValidation的{​​{1}}属性设置为TextBox,如下所示:

true

答案 2 :(得分:1)

您必须添加ValidationGroup =&#34;提交&#34;到将触发回发的ASP.NET控件。

答案 3 :(得分:1)

如果ASPx中的其他验证程序未验证,则不会触发CustomValidators。您可能需要使用特定的验证组强制使用Page.Validate(&#34;某些东西&#34;)。我建议查看OnTextChanged事件以强制页面验证。