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