我在一个文本框上应用了一个自定义验证器,其值由日历控制。我已经给出了服务器端验证,以检查它是否是过去的日期。点击提交按钮即可触发验证器。 args.IsValid值设置为false,但代码仍然会进入提交按钮的单击事件,而不是显示错误消息。 请帮忙。
aspx.cs file
protected void CustomValidatorIssueDate_ServerValidate(object source, ServerValidateEventArgs args)
{
string nowString = DateTime.Now.ToString("MM/dd/yyyy");
DateTime now = Convert.ToDateTime(nowString);
DateTime issueDate = Convert.ToDateTime(args.Value);
if (issueDate.CompareTo(now) > 0)
{
args.IsValid = true;
}
else
{
args.IsValid = false;
}
}
aspx file
<asp:TextBox ID="TextBoxIssueDate" runat="server" Width="214px"></asp:TextBox>
<asp:CustomValidator runat="server" ControlToValidate="TextBoxIssueDate"
ErrorMessage="Issue Date cannot be past date"
onservervalidate="CustomValidatorIssueDate_ServerValidate"
ID="CustomValidatorIssueDate" Display="Dynamic" SetFocusOnError="True" ></asp:CustomValidator>
答案 0 :(得分:0)
只需将IsValid
设置为false
即可绕过您的onclick事件处理程序。
您需要在IsValid的事件处理程序中进行检查。
if(Model.IsValid)
{
}
(或类似的东西)。