CustomValidator not working (asp.net vb)
-
06-02-2021 - |
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.
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