我意识到有很多类似的帖子,但是我还没有找到一个对我有用的帖子。基本上,我有一个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
更新:我注意到我现在能够触发事件,但是验证总结设置为显示消息框中的所有错误,并且此错误未添加到消息框中。
答案 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事件以强制页面验证。