没有为自定义验证程序显示错误消息

时间:2010-11-03 22:50:07

标签: asp.net validation

我要求多个字段之一是必需的。使用自定义验证器,偶数触发,返回false,但不显示错误消息,表单验证。

我错过了什么?我曾尝试使用和不使用ValidationSummary。

谢谢!

<asp:CustomValidator ID="CustomValidator1" OnServerValidate="validatePhone" EnableClientScript="false" runat="server" ErrorMessage="Home or Cell Phone is Required" ></asp:CustomValidator>

<asp:ValidationSummary ID="ValidationSummary1" DisplayMode="BulletList"  runat="server" ForeColor="Red" Font-Size="X-Small" Font-Bold="true" />


protected void validatePhone(object sender, ServerValidateEventArgs e)
    {
        e.IsValid = string.IsNullOrEmpty(txtCellPhone.Text) && string.IsNullOrEmpty(txtHomePhone.Text) ? false : true;
    }

3 个答案:

答案 0 :(得分:1)

您必须将ControlToValidate设置为某个TextBox。

<asp:CustomValidator ID="CustomValidator1" OnServerValidate="validatePhone" EnabEnableClientScript="false" runat="server" ErrorMessage="Home or Cell Phone is Required" ControlToValidate="txtHomePhone"/>

答案 1 :(得分:1)

结帐this article。基本上你需要连接客户端验证。 在结束表单标记之前添加以下内容,根据需要更改控件名称:

<%-- This configures the validator to automatically--%> 
<%-- update when either of these controls is changed --%>
<script type="text/javascript">
   <!--
      ValidatorHookupControlID("<%= MyControl1.ClientID %>", 
      document.getElementById["<%= CustomValidator1.ClientID %>"]);
      ValidatorHookupControlID("<%= MyControl2.ClientID %>", 
      document.getElementById["<%= CustomValidator1.ClientID %>"]);
   //-->
</script>

或者使用this control

答案 2 :(得分:1)

问题完全是我的错。在我的提交按钮上,我做的最后一件事是Response.Redirect。消息即将发布,但随后出现了感谢页面。现在只有在customvalidator返回true时才执行Response.Redirect。