【问题标题】:Custom Validator validation not firing for textbox in asp.net自定义验证器验证未触发 asp.net 中的文本框
【发布时间】:2015-07-09 07:04:53
【问题描述】:
<asp:TextBox ID="txtDOB" runat="server" CssClass="textbox_width_height" 
placeholder="DD/MM/YYYY" CausesValidation="true"></asp:TextBox>

<asp:CustomValidator id="CustomValidator1" runat="server" Display="Dynamic" 
      Enabled="true" ValidateEmptyText="true" SetFocusOnError="true"
      OnServerValidate="CustomValidator1_OnServerValidate"   
       ControlToValidate="txtDOB" 
       ErrorMessage="Age must be grater than 16 years"  >
</asp:CustomValidator>

这里是事件

protected void CustomValidator1_OnServerValidate(object source, ServerValidateEventArgs args)
    {
        DateTime todayDate = System.DateTime.Now;
        DateTime textDOB = Convert.ToDateTime(txtDOB.Text);

        DateTime total = todayDate.AddYears(-16);
        if (textDOB <= total)
        {
            args.IsValid = true;
        }
        else
        {
            args.IsValid = false;
        }
    }

【问题讨论】:

  • 代码看起来不错,我希望你正确连接事件...检查你在页面属性上的自动连接是否为假,如果它是你正确附加的事件
  • 是的,代码没问题,我测试它正在验证。或者您想实时验证它?

标签: asp.net validation c#-4.0


【解决方案1】:

Place AutopostBack="True" 会变成这样的

  <asp:TextBox ID="txtDOB" AutoPostBack="true" runat="server" CssClass="textbox_width_height" placeholder="DD/MM/YYYY" CausesValidation="true"></asp:TextBox>

希望对你有帮助

【讨论】:

  • 不应该这样,因为点击按钮时即使自动回发不是假的也会触发验证
猜你喜欢
  • 2011-07-04
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2011-08-06
  • 2010-10-16
  • 1970-01-01
相关资源
最近更新 更多