Проблема с отображением текста ошибки из Custom Validator - PullRequest
0 голосов
/ 12 января 2009

У меня есть страница, которая пытается войти в систему пользователя. вверху страницы у меня есть элемент управления ValidationSummary. У меня нет элементов управления, явно объявленных на странице, и я вызываю статический метод для добавления средства проверки на страницу при ошибке. (см. ниже)

Когда страница отправлена, ValidationSummary появляется, однако, ни одно из сообщений об ошибках в отображении элемента управления ValidationSummary. Это похоже на то, что элемент управления не знает, какой текст ошибки записать в элемент управления.

Нужно ли переопределять метод в BaseValidator для отображения текста ошибки валидатора?

Вот как валидатор добавляется на страницу:

Private Sub btnWindowsLogin_Click(ByVal sender As Object, ByVal e As System.EventArgs) Handles btnWindowsLogin.Click
    Dim username As String = txtNetworkID.Text.Trim
    Dim password As String = txtPassword.Text

    If username.IsEmpty Then
        ErrorSummary.AddError("Please enter your NT Login", "WindowsLogin", Page)
    End If
    If password.IsEmpty Then
        ErrorSummary.AddError("Please enter your password", "WindowsLogin", Page)
    End If
    If Page.IsValid Then
        If Not AuthenticationService.ValidateActiveDirectoryLogin(username, password) Then
            ErrorSummary.AddError("The username or password you entered is incorrect", Page)
        ElseIf Not UserService.WindowsLoginExists(username) Then
            ErrorSummary.AddError("The NT Login entered is not associated with an account in the application", Page)
        Else
            'Get the user and validate the role, if the user is active, etc...

        End If
    End If
End Sub

и вот класс ErrorSummary:

Public Class ErrorSummary
    Inherits BaseValidator

    Public Sub New(ByVal message As String, ByVal validationGroup As String)
        MyBase.Text = message
        MyBase.ValidationGroup = validationGroup
        MyBase.IsValid = False
    End Sub

    Public Sub New(ByVal message As String)
        Me.New(message, String.Empty)
    End Sub

    Public Shared Sub AddError(ByVal message As String, ByVal page As Page)
        AddError(message, String.Empty, page)
    End Sub

    Public Shared Sub AddError(ByVal message As String, ByVal validationgroup As String, ByVal page As Page)
        Dim objError As New ErrorSummary(message, validationgroup)
        page.Validators.Add(objError)
    End Sub

    Protected Overrides Function EvaluateIsValid() As Boolean
        Return False
    End Function

End Class

1 Ответ

2 голосов
/ 12 января 2009

Я думаю, вы хотите установить свойство ErrorMessage вместо свойства Text .

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...