none
Merge Linhas e Colunas Gridview RRS feed

  • Discussão Geral

  • Boa tarde!

    Eu pesquisei bastante, achei varios exemplos, mas não consegui fazer o que preciso porque o MERGE acontece sem respeitar a coluna ID que eu preciso, tentei fiz tudo que podial, se alguem puder me ajudar eu agradeço.

    Essa URL vai trazer os dados que preciso fazer merge:

    http://www.atiptenis.com.br/teste_1.aspx

    Preciso realizar o merge das linhas respeitando a coluna ID, ou seja, mesmo que os dados sejam iguais devem se repetir para cada mudança de ID.

    Obrigado!

    • Tipo Alterado Marcos SJ segunda-feira, 14 de março de 2016 12:55 How to
    sexta-feira, 11 de março de 2016 20:06

Todas as Respostas

  • Consegui fazer, deu trampo, mas depois consegui com uma solução muito simples:

        Public Sub F_GridView_MergeRows(ByVal GridView As Web.UI.WebControls.GridView)
            For rowIndex As Integer = GridView.Rows.Count - 2 To 0 Step -1
                Dim row As Web.UI.WebControls.GridViewRow = GridView.Rows(rowIndex)
                Dim previousRow As Web.UI.WebControls.GridViewRow = GridView.Rows(rowIndex + 1)
    
                For i As Integer = 0 To row.Cells.Count - 1
                    If row.Cells(i).Text = previousRow.Cells(i).Text Then
                        row.Cells(i).RowSpan = If(previousRow.Cells(i).RowSpan < 2, 2, previousRow.Cells(i).RowSpan + 1)
                        previousRow.Cells(i).Visible = False
                    End If
                Next
            Next
        End Sub
    
        Public Sub F_GridView_MergeRows(ByVal GridView As Web.UI.WebControls.GridView, ByVal Agrupar_Coluna As Integer)
            For rowIndex As Integer = GridView.Rows.Count - 2 To 0 Step -1
                Dim row As Web.UI.WebControls.GridViewRow = GridView.Rows(rowIndex)
                Dim previousRow As Web.UI.WebControls.GridViewRow = GridView.Rows(rowIndex + 1)
    
                For i As Integer = 0 To row.Cells.Count - 1
                    If row.Cells(i).Text = previousRow.Cells(i).Text Then
                        If row.Cells(Agrupar_Coluna).Text = previousRow.Cells(Agrupar_Coluna).Text Then
                            row.Cells(i).RowSpan = If(previousRow.Cells(i).RowSpan < 2, 2, previousRow.Cells(i).RowSpan + 1)
    
                            previousRow.Cells(i).Visible = False
                        End If
                    End If
                Next
            Next
        End Sub
    

    segunda-feira, 14 de março de 2016 21:36