CustomValidator не работает (asp.net vb) - PullRequest
0 голосов
/ 04 октября 2011

Я впервые использую CustomValidator, но, похоже, он не запускает DateExpireRequired_ServerValidate, а просто запускает код в действии Click.

Меня уже пару часов мучают!Кто-нибудь может увидеть проблему с тем, что я делаю?

DropDownList в моем коде ниже заполняется с помощью 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

Спасибо J.

Ответы [ 2 ]

1 голос
/ 04 октября 2011

У вас есть Enabled="false" в вашем пользовательском определении валидатора.Я предполагаю, что это отключает этот валидатор.

0 голосов
/ 06 октября 2011

Ответ был таким же, как в комментарии Менно ван ден Хевеля выше:

У вас есть для validateemptytext значение True? Я вижу, что вы проверяете пустую строку в вашем обработчике событий, но обработчик событий не будет запущен, если значение привязанного элемента управления пусто.

...