从 GridView VB.net 读取、获取、比较和计算行



我有一点问题,实际上我无法摆脱他的。我有一个名为"周期性"的专栏,它告诉我一件事必须完成多少次。

我想做的是验证它将计算其中一个存在多少次,如果其中一个有单选按钮填充,它将强制用户填充相同类型的 periocidade 的其他,但目前他正在计算总网格视图行,而不是同一周期的类型。我当前的代码是:

    Dim todos_items_periocidade_vazios As Boolean = True
    Dim todos_items_periocidade_preenchidos As Boolean = False
    Dim periocidade_validada As Boolean = False
    'quantas linhas tem a grid
    Dim n_linha_grid As Integer = GridView_Manutencao.Rows.Count
    Dim periocidade_linha As String
    Dim contador_preenchido As Integer = 0
    Dim contador_linhas As Integer = 0
    'para cada linha verificar 
    For Each row2 As GridViewRow In GridView_Manutencao.Rows
        'percorrer tabela e validar a periocidade da linha encontrada
        periocidade_linha = (CType(row2.FindControl("Label_Periodicidade"), Label).Text)
        For Each row As GridViewRow In GridView_Manutencao.Rows
            If ((CType(row.FindControl("Label_Periodicidade"), Label).Text) = periocidade_linha) Then
                contador_linhas = contador_linhas + 1
                periocidade_validada = True
                If periocidade_validada = True Then
                    'testar se está vazio ou preenchido
                    If (CType(row.FindControl("RBList"), RadioButtonList).SelectedValue = "") Then
                        'percorrer a tabela e verificar se todos os itens estão vazios ou não
                        For Each row1 As GridViewRow In GridView_Manutencao.Rows
                            If ((CType(row1.FindControl("Label_Periodicidade"), Label).Text) = periocidade_linha) Then
                                If (CType(row1.FindControl("RBList"), RadioButtonList).SelectedValue = "") Then
                                    todos_items_periocidade_vazios = True
                                Else
                                    todos_items_periocidade_vazios = False
                                End If
                            End If
                        Next
                    Else
                        For Each row1 As GridViewRow In GridView_Manutencao.Rows
                            If ((CType(row1.FindControl("Label_Periodicidade"), Label).Text) = periocidade_linha) Then
                                If (CType(row1.FindControl("RBList"), RadioButtonList).SelectedValue <> "") Then
                                    contador_preenchido = contador_preenchido + 1
                                    todos_items_periocidade_preenchidos = True
                                Else
                                    todos_items_periocidade_preenchidos = False
                                End If
                            End If
                        Next
                    End If

                End If



            End If
        Next
        valida_comentario()

        If contador_preenchido = 0 Then
            periocidade_validada = False
            tudo_validado = False
        ElseIf contador_preenchido < contador_linhas Then
            periocidade_validada = False
            tudo_validado = False
        Else
            If valida_comentario() = True Then
                If ((todos_items_periocidade_vazios = True) And (todos_items_periocidade_preenchidos = True)) Then
                    periocidade_validada = True
                    tudo_validado = True
                    Lbl_Mensagem.Text = "Registo inserido com sucesso!"
                ElseIf ((todos_items_periocidade_vazios = False) And (todos_items_periocidade_preenchidos = True)) Then
                    periocidade_validada = True
                    tudo_validado = True
                    Lbl_Mensagem.Text = "Registo inserido com sucesso!"
                Else
                    periocidade_validada = False
                    tudo_validado = False
                    Lbl_Mensagem.Text = "Erro"
                End If
            Else
                tudo_validado = False
                periocidade_validada = False
                Lbl_Mensagem.Text = "Erro"
            End If
        End If
    Next
    Return periocidade_validada

我得到了答案,希望对你们所有人都有用,谢谢,在这里:

   Dim texto_periodicidade As String
    Dim valor As String
    Dim flag_validacao As Boolean = False
    Dim contador_falso As Integer
    contador_falso = 0
        For Each linha As GridViewRow In GridView_Manutencao.Rows
            texto_periodicidade = CType(linha.FindControl("Label_Periodicidade"), Label).Text
            valor = CType(linha.FindControl("RBList"), RadioButtonList).SelectedValue
            For Each row As GridViewRow In GridView_Manutencao.Rows
                If (texto_periodicidade = CType(row.FindControl("Label_Periodicidade"), Label).Text) Then
                If (valor = CType(row.FindControl("RBList"), RadioButtonList).SelectedValue) Then
                    flag_validacao = True
                Else
                    contador_falso = contador_falso + 1
                    flag_validacao = False
                End If
                End If


        Next row
    Next linha
    If contador_falso > 0 Then
        Lbl_Mensagem.Text = "Complete os restantes valores da periocidade!"
        contador_falso = 0
        Return False
    Else
        If valida_comentario() = True Then
            contador_falso = 0
            Return True
        End If
    End If

最新更新