【发布时间】:2011-06-17 14:53:38
【问题描述】:
我在一个文本框上应用了一个自定义验证器,其值由日历更改。我已经进行了服务器端验证以检查它是否是过去的日期。单击提交按钮时会触发验证器。 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>
【问题讨论】:
-
是否可以提供您所指的任何代码?
-
您是否在检查 args.IsValid 并在没有检查的情况下做某事?或者如果 IsValid == false,您是否希望它绕过该方法?
-
请贴出你说的代码,验证器控件的aspx和文本框会有用
-
@Jamie 如果在 customValidator 方法中将 args.IsValid 设置为 false,我希望它绕过按钮的 onclick 事件。
标签: c#