El lenguaje es Visual Basic
tengo un dgv (datagridview) al cual el usuario realizara una modificacion de una celda en particular ingresando solo numeros, una vez que el usuario termine de realizar la modificacion en la celda toda la fila de este dgv sera agregado a un nuevo Dgv, el tema es que cuando el usuario realiza la modificacion se envia a la nueva grilla pero la celda no esta modificada, he leido bastante y al parecer tengo que controlar el evento cell dirty state change y dar el commit para que los datos en cache sean guardado, el tema es que cuando depuro la aplicacion los datos en la nueva fila se muestran cambiados pero no se ven reflajados en la grilla nueva adjunto el codigo
Código:
' aqui estoy manejando que ingrese a la celda "Porcentaje"
Private Sub DgvTempo_CellContentClick(sender As Object, e As DataGridViewCellEventArgs) Handles DgvTempo.CellContentClick
Dim i As Integer
Dim row As DataGridViewRow = DgvTempo.CurrentRow
Dim Vusuario, Vestacion As String
With DgvTempo
If e.RowIndex >= 0 Then
i = .CurrentRow.Index
If e.ColumnIndex = .Rows(i).Cells("Porcentaje").ColumnIndex Then
.Rows(i).Cells("Porcentaje").ReadOnly = False
CType(.Columns("Porcentaje"), DataGridViewTextBoxColumn).MaxInputLength = 2
Vusuario = CLLibreria.VgUsuarioCodigo
Vestacion = CLLibreria.VgEstacion
DTTemporada.Rows(i)("Usuario") = Vusuario
DTTemporada.Rows(i)("Estacion") = Vestacion
Else
.Rows(i).ReadOnly = True
End If
End If
End With
End Sub
' aqui se supone que el cambio ya fue realizado y debe agregar la fila con los datos ya
' cambiados y agregarlos a la nueva grilla, estoy trabajando con los dataTable de las grillas
Private Sub DgvTempo_CellValidated(sender As Object, e As DataGridViewCellEventArgs) Handles DgvTempo.CellValidated
Dim i As Integer
Dim fila As DataRow
Dim nvalor As Integer
Dim nvalor2 As String
Dim Vusuario, Vestacion As String
nvalor = DgvTempo.CurrentRow.Cells("Porcentaje").Value
nvalor2 = DTTemporada.Rows(e.RowIndex).Item("Porcentaje").ToString
'MsgBox(CStr(nvalor) & " / " & nvalor2)
With DgvTempo
i = .CurrentRow.Index
If e.ColumnIndex = .Rows(i).Cells("Porcentaje").ColumnIndex And .Rows(i).Cells("Porcentaje").Value > 0 Then
fila = DTTemporada.Rows(i)
fila("Porcentaje") = .CurrentRow.Cells("porcentaje").Value
DTtempo.ImportRow(fila)
Vusuario = CLLibreria.VgUsuarioCodigo
Vestacion = CLLibreria.VgEstacion
DTtempo.Rows(i)("Usuario") = Vusuario
DTTemporada.Rows(i)("Estacion") = Vestacion
DgvTemporada.DataSource = DTtempo
DgvTemporada.Columns("Id_PreTemp").Visible = False
DgvTemporada.Columns("Cod_tienda").Visible = False
DgvTemporada.Columns("Cod_Temporada").Visible = False
DgvTemporada.Columns("Cod_Marca").Visible = False
DgvTemporada.Columns("Usuario").Visible = False
DgvTemporada.Columns("Estacion").Visible = False
DgvTemporada.AllowUserToAddRows = False
DgvTemporada.RowHeadersVisible = False
DTTemporada.Rows.RemoveAt(i)
If DgvTemporada.Rows.Count > 0 Then
If Not VBtnCreado Then
CreaBtnEliminar()
End If
End If
End If
End With
End Sub
en la nueva grilla me meustra la fila agregada pero con la columna porcentaje con los valores en 0...
Llevo 2 dias atorado espero alguno me pueda ayudar
Saludos