C# 使用自定义验证器停止服务器端执行

C# 使用自定义验证器停止服务器端执行,c#,asp.net,customvalidator,C#,Asp.net,Customvalidator,我有一个带有自定义验证器的最小年龄表单。我在那张表格上有“提交”按钮。当自定义验证器启动时,我不希望submit按钮中的代码执行,因此当不满足最低年龄要求时,我将ServerValidateEventArgs参数设置为false。提交按钮内的代码被删除 下面是我的自定义验证器: <asp:CustomValidator Display="None" ID="CustomValidator1" runat="server" OnSe

我有一个带有自定义验证器的最小年龄表单。我在那张表格上有“提交”按钮。当自定义验证器启动时,我不希望submit按钮中的代码执行,因此当不满足最低年龄要求时,我将ServerValidateEventArgs参数设置为false。提交按钮内的代码被删除

下面是我的自定义验证器:

<asp:CustomValidator Display="None" ID="CustomValidator1" runat="server" OnServerValidate="ageValidator" ControlToValidate="txtDOB" ErrorMessage="CustomValidator"  />

下面是我的出生日期文本框:

<input   id="txtDOB" placeholder="mm/dd/yyyy" type="text" data-role="datebox" value="" runat="server"  ></input>

我在该页面上还有“提交”按钮:

<asp:Button ID="btnSubmit" runat="server" Text="Submit" data-icon="check" OnClick="btnSubmit_Click" UseSubmitBehavior="true"   />

下面是我的自定义验证程序代码:

protected void ageValidator(object source, ServerValidateEventArgs args)
{
    DateTime dtStart = DateTime.Parse(txtDOB.Value.ToString());
    TimeSpan sp = DateTime.Now - dtStart;

    if (sp.Days < 16 * 365)
    {
        args.IsValid = false;
        CustomValidator1.ErrorMessage = "You have to be at least 16 ";
        return ;
    }
    else
        args.IsValid = true;
}

protected void btnSubmit_Click(object sender, System.EventArgs e)
{
    // some code here
}
受保护的void ageValidator(对象源,ServerValidateEventArgs args)
{
DateTime dtStart=DateTime.Parse(txtDOB.Value.ToString());
TimeSpan sp=DateTime.Now-dtStart;
如果(sp天数<16*365)
{
args.IsValid=false;
CustomValidator1.ErrorMessage=“您必须至少16岁”;
返回;
}
其他的
args.IsValid=true;
}
受保护的void btnsupmit\u单击(对象发送者,System.EventArgs e)
{
//这里有一些代码
}
当我单击submit按钮时,将执行自定义验证器代码,然后无论参数是true还是false,都将执行submit按钮中的代码。如果args为false,我不希望执行submit按钮中的代码,但这不会发生


任何帮助都将不胜感激。

btnSubmit\u单击
内,您可以测试
页面。IsValid
(您的自定义验证程序将其设置为false)并根据该答案决定是否执行任何其他操作。

btnSubmit\u单击
内,您可以测试
页面。IsValid
(您的自定义验证器将其设置为false)并根据该答案决定是否执行任何其他操作。

注释

您可以通过属性ErrorMessage=“您必须至少为16”在ASPX中设置错误消息。无需在方法中返回

您必须在这样的方法中添加
Page.IsValid

if (Page.IsValid) 
     {

        SomeLabelMessage.Text = "Page is valid.";

     }

     else 
     {

        SomeLabelMessage.Text = "Page is not valid!";

     }

评论

您可以通过属性ErrorMessage=“您必须至少为16”在ASPX中设置错误消息。无需在方法中返回

您必须在这样的方法中添加
Page.IsValid

if (Page.IsValid) 
     {

        SomeLabelMessage.Text = "Page is valid.";

     }

     else 
     {

        SomeLabelMessage.Text = "Page is not valid!";

     }