Проверка не удалась, но переход на следующую страницу - PullRequest
0 голосов
/ 17 ноября 2009

У меня есть проверка правильности регулярного выражения на странице, которая проверяет, является ли введенное значение в текстовом поле числовым, оно не числовое, оно выдает сообщение об ошибке с надписью «оно должно быть числовым»

но когда я нажимаю на следующую кнопку формы .. она переходит на следующую страницу. Но так не должно быть. Как это решить?

 Protected Sub btn_View1_Next_Click(ByVal sender As Object, ByVal e As EventArgs) Handles btn_View1_Next.Click
        Try
            Dim currentView As Int16
            currentView = mvRequestorForm.ActiveViewIndex
            Dim rowsCount As Integer = gvRoleDepartment.Rows.Count
            Dim checkCount As Integer = 0
            ''USERID Validation
            lblUserExists.Text = String.Empty

            rfvStoreNumber.Validate()
            rfvStoreNumber.SetFocusOnError = True

            rfvSurName.Validate()
            rfvSurName.SetFocusOnError = True

            ''New USesr
            If (ddl_view0_typeOfRequest.SelectedItem.ToString().ToLower().Equals("new")) Then
                rfvEmplyeeNumber.Visible = True
                If Page.IsValid Then
                    If currentView = 1 Then
                        mvRequestorForm.ActiveViewIndex = (currentView + 1)
                        rfv_view2_managersEmail.Enabled = True
                        rev_view2_managersEmail.Enabled = True
                    Else
                        mvRequestorForm.ActiveViewIndex = (currentView + 1)
                    End If

                    If currentView = 0 Then accountType = ddl_view0_typeOfRequest.SelectedItem.ToString()
                    If mvRequestorForm.ActiveViewIndex = 1 Then
                        Sub_ActivateView1()
                    End If
                End If
            ElseIf ddl_view0_typeOfRequest.SelectedValue.ToString().ToLower().Equals("delete") Then
                ''Check the requirement

                'rfvFirstName.Validate()
                'rfvFirstName.SetFocusOnError = True

                rfvUserID.Validate()
                rfvUserID.SetFocusOnError = True

                rfvEmplyeeNumber.Visible = True
                If Page.IsValid Then
                    Dim dsRoles As New DataSet
                    dsRoles = SearchGroups(txtUserID.Text.Trim())
                    If Not sResult Is Nothing Then
                        lblUserExists.Text = String.Empty
                        If currentView = 1 Then
                            mvRequestorForm.ActiveViewIndex = (currentView + 1)
                            rfv_view2_managersEmail.Enabled = True
                            rev_view2_managersEmail.Enabled = True
                        Else
                            mvRequestorForm.ActiveViewIndex = (currentView + 1)
                        End If

                        If currentView = 0 Then accountType = ddl_view0_typeOfRequest.SelectedItem.ToString()
                        If mvRequestorForm.ActiveViewIndex = 1 Then
                            Sub_ActivateView1()
                        End If
                    Else
                        lblUserExists.Text = String.Format("This userid doesn't exist. Please enter a valid user id.")
                        Return
                    End If
                End If
            Else
                ''Update User
                rfvUserID.Validate()
                rfvUserID.SetFocusOnError = True
                rfvEmplyeeNumber.Visible = True
                If Page.IsValid Then
                    Dim dsRoles As New DataSet
                    dsRoles = SearchGroups(txtUserID.Text.Trim())
                    If Not sResult Is Nothing Then
                        lblUserExists.Text = String.Empty
                        If currentView = 1 Then
                            mvRequestorForm.ActiveViewIndex = (currentView + 1)
                            rfv_view2_managersEmail.Enabled = True
                            rev_view2_managersEmail.Enabled = True
                        Else
                            mvRequestorForm.ActiveViewIndex = (currentView + 1)
                        End If

                        If currentView = 0 Then accountType = ddl_view0_typeOfRequest.SelectedItem.ToString()
                        If mvRequestorForm.ActiveViewIndex = 1 Then
                            Sub_ActivateView1()
                        End If
                    Else
                        lblUserExists.Text = String.Format("This userid doesn't exist. Please enter a valid user id.")
                        Return
                    End If
                End If
            End If

        Catch ex As Exception

        End Try
    End Sub

1 Ответ

1 голос
/ 18 ноября 2009

Прежде всего ... У вас есть это в вашем web.config:

<xhtmlConformance mode="Legacy">

Если вы это сделаете ... это существенно нарушает всю проверку на стороне клиента. Важно отметить, что проверка на стороне сервера не удерживает вашу страницу от обработки автоматически. Вы должны проверить свойство Page.IsValid ... похоже, вы это делаете. Но ...

Второе ... почему вы явно вызываете Validate () для элемента управления rfvUserID? Это не должно быть необходимым. Возможно, вы делаете недействительным свойство IsValid, делая это.

Однако, похоже, что автоматический валидатор не запускается. Вы можете опубликовать aspx? Только валидаторы в группе валидации «Form2» будут запускаться для btn_View1_Next. Попробуйте удалить ВСЕ параметры ValidationGroup. Это работает нормально?

Наконец ... идентификатор "Form2" подразумевает что-то подозрительное. У вас есть только один реальный тег формы на этой странице, верно? В противном случае у вас есть целый ряд проблем.

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