Question

I am using the CustomValidator for the first time but it doesn't seem to be firing DateExpireRequired_ServerValidate and just runs the code in the Click action.

Been bugging me for a couple hours now! can anyone see a problem with what im doing?

The DropDownList in my code below is populated using Roles.GetAllRoles()

ASP.NET

<asp:Label ID="lUserRole" runat="server" AssociatedControlID="tUserRole">User Role:</asp:Label>
<asp:DropDownList ID="tUserRole" runat="server" CausesValidation="True">
</asp:DropDownList>

<asp:Label ID="lDateExpire" runat="server" AssociatedControlID="tDateExpire">Date Expire:</asp:Label>
<asp:TextBox ID="tDateExpire" runat="server"></asp:TextBox>
<asp:CustomValidator ID="DateExpireRequired" runat="server"
                ControlToValidate="tDateExpire" ErrorMessage="Date Expire is required for 'Users'." OnServerValidate="DateExpireRequired_ServerValidate"
                ToolTip="Date Expire is required for 'Users'." CssClass="frmError"></asp:CustomValidator>

CODE BEHIND

    Sub DateExpireRequired_ServerValidate(source As Object, args As System.Web.UI.WebControls.ServerValidateEventArgs)

    If tUserRole.SelectedValue = "User" Then
        If tDateExpire.Text <> "" Then
            args.IsValid = False
        Else
            args.IsValid = True
        End If
    Else
        args.IsValid = True
    End If

End Sub

Thanks J.

Was it helpful?

Solution 2

The answer was as in Menno van den Heuvel's comment above:

Do you have validateemptytext set to True? I see that you check for an empty string in your event handler, but the event handler won't be run if the bound control's value is empty.

OTHER TIPS

You have Enabled="false" in your custom validator definition. I assume this is disabling that validator.

Licensed under: CC-BY-SA with attribution
Not affiliated with StackOverflow
scroll top