ASP.NET - 使CustomValidator检查控件的属性

时间:2012-04-16 07:46:25

标签: asp.net customvalidator

我有一个用户控件,它有一个bool IsValidDate属性。如果属性的值为false,我如何使用CustomValidator检查此值并返回其错误消息?

1 个答案:

答案 0 :(得分:1)

如果您的用户控件看起来像这样:

<%@ Control Language="C#" AutoEventWireup="true" CodeBehind="MyDateUserControl.ascx.cs" Inherits="CustomValidation.MyDateUserControl" %>

My custom user control
<asp:TextBox runat="server" ID="DateTextBox" />

<asp:CustomValidator  runat="server" ValidateEmptyText="true" ID="DateCustomValidator" ControlToValidate="DateTextBox"  OnServerValidate="DateCustomValidator_ServerValidate" ErrorMessage="The date is not valid" />

<asp:Button ID="SubmitButton" runat="server" Text="Submit" />

然后在您的代码隐藏中,您可以使用:

public bool IsValidDate
{
    get
    {
        DateTime temp;
        return DateTime.TryParse(DateTextBox.Text, out temp);
    }
}

protected void DateCustomValidator_ServerValidate(object source, ServerValidateEventArgs args)
{
    args.IsValid = IsValidDate;
}

如果您不希望自定义验证程序成为用户控件的一部分,则必须在IsValidDate前加上用户控件的名称。