none
Agregar una fila al final de datagridview RRS feed

  • Pregunta

  • Buenas necesito un poco de ayuda tengo este codigo:

    Private Sub AddRow(ByVal DetItem As List(Of DetallePedidoClienteEntity))
    
            If dgvfactura.DataSource IsNot Nothing Then
                Dim list As List(Of DetallePedidoClienteEntity) = TryCast(dgvfactura.DataSource, List(Of DetallePedidoClienteEntity))
                For Each it_line As DetallePedidoClienteEntity In list
                    DetItem.Add(DirectCast(it_line, DetallePedidoClienteEntity))
                Next
    
            End If
    
            dgvfactura.DataSource = DetItem
            dgvfactura.AutoGenerateColumns = False
    
        End Sub
    
    
    
     Private Sub btnnuevafila_Click(sender As Object, e As EventArgs) Handles btnnuevafila.Click
    
            Dim lista As New List(Of DetallePedidoClienteEntity)()
            lista.Add(New DetallePedidoClienteEntity())
            AddRow(lista)
            dgvfactura.AllowUserToAddRows = True
            
        End Sub

    con ese codigo me genera una nueva fila pero necesito que esa fila siempre salga al final y no al comienzo

    Espero puedan ayudarme muchas gracias

    sábado, 26 de marzo de 2016 6:48

Respuestas

  • Cierto, perdona.

    Para que funcione así deberías usar BindingList. Incluso se podría simplificar algo más:

        Private Sub AddRow()
            Dim list = TryCast(dgvfactura.DataSource, BindingList(Of DetallePedidoClienteEntity))
            If dgvfactura.DataSource Is Nothing Then
                list = new BindingList(Of DetallePedidoClienteEntity)
                dgvfactura.DataSource = list
            End If
            list.Add(new DetallePedidoClienteEntity())
        End Sub


    Píldoras .NET
    Artículos, tutoriales y ejemplos de código .NET

    Píldoras JS
    Artículos, tutoriales y ejemplos de código JavaScript, HTML5, CSS3, ...

    domingo, 27 de marzo de 2016 7:28

Todas las respuestas

  • Y ¿por qué complicarte tanto y no hacer simplemente algo así?

        Private Sub AddRow()
            If dgvfactura.DataSource IsNot Nothing Then
                Dim list As List(Of DetallePedidoClienteEntity) = TryCast(dgvfactura.DataSource, List(Of DetallePedidoClienteEntity))
                list.Add(new DetallePedidoClienteEntity())
                dgvfactura.DataSource = list
            End If
        End Sub
    

    De esta forma simplemente tendrías que llamar al método AddRow sin parámetros para añadir una nueva fila.


    Píldoras .NET
    Artículos, tutoriales y ejemplos de código .NET

    Píldoras JS
    Artículos, tutoriales y ejemplos de código JavaScript, HTML5, CSS3, ...

    sábado, 26 de marzo de 2016 7:07
  • Hola gracias por la respuesta pero lo utilizo como me recomienda y no me agrega nada

    Igual gracias

    sábado, 26 de marzo de 2016 18:51
  • Cierto, perdona.

    Para que funcione así deberías usar BindingList. Incluso se podría simplificar algo más:

        Private Sub AddRow()
            Dim list = TryCast(dgvfactura.DataSource, BindingList(Of DetallePedidoClienteEntity))
            If dgvfactura.DataSource Is Nothing Then
                list = new BindingList(Of DetallePedidoClienteEntity)
                dgvfactura.DataSource = list
            End If
            list.Add(new DetallePedidoClienteEntity())
        End Sub


    Píldoras .NET
    Artículos, tutoriales y ejemplos de código .NET

    Píldoras JS
    Artículos, tutoriales y ejemplos de código JavaScript, HTML5, CSS3, ...

    domingo, 27 de marzo de 2016 7:28
  • Hola Pues sigue sin funcionar

    Agrega a la lista pero no se refleja en el datagrid

    Igual muchas gracias

    sábado, 2 de abril de 2016 2:11