viernes, 5 de marzo de 2010

Grabar valor de true o false en un checkbox de un datagridview, incluyendo el renglón seleccionado.

 Estimados lectores, ha sido una experiencia agradable el hacer este blog y tener algunos lectores que comparten el gusto por la programación; actualmente estoy empezando otro proyecto, muy personal,  con tecnología web  que espero compartir con toda la comunidad de programadores y necesito recursos porque es algo muy personal y mi situación financiera no es muy buena.
 Si alguien desearía apoyarme  tengo una tarjeta Oxxo Saldazo con el número:  4766-8408-7508-1593, cualquier apoyo lo pueden hacer en cualquier tienda Oxxo o en Banamex, les agradezco y que sus proyectos lleguen a buen fin.

En ocasiones debemos marcar o desmarcar todos los renglones de un datagridview, como por ejemplo si todos los artículos de un pedido están autorizados.
La rutina para marcar los checkbox sería la siguiente—donde dgart es mi datagridview:

‘Nos aseguramos que el datagridview tenga registros
If DgArt.Rows.Count > 0 Then
‘si tiene registros recorremos todo el datagridview
For Each Row As DataGridViewRow In DgArt.Rows
‘Asumimos que la celda 0 contiene el checkbox
Row.Cells(0).Value = True
Next
‘ojo, las siguiente lineas es para asegurarnos que cuando ‘grabemos nos grabe 'también el registro en que esta posicionado
‘Una vez acabado el marcado, nos posicionamos en el renglón 0—‘primer 'registro—
DgArt.Rows(0).Selected = True
‘ponemos que la celda actual es cualquier otra que no sea la ‘celda del checkbox, esto es para forzar la actualización —en ‘este caso yo elegi la celda 3
DgArt.CurrentCell = DgArt.Rows(0).Cells(3)
‘colocamos el valor de beginedit a true para entrar a edición
DgArt.BeginEdit(True)
‘y terminamos la edición
DgArt.EndEdit()
End If
Endif
‘para desmarcar la rutina es exactamente igual solo que con false
If DgArt.Rows.Count > 0 Then
‘si tiene registros recorremos todo el datagridview
For Each Row As DataGridViewRow In DgArt.Rows
‘Asumimos que la celda 0 contiene el checkbox
Row.Cells(0).Value = false
Next
‘ojo, las siguiente lineas es para asegurarnos que cuando ‘grabemos nos grabe 'también el registro en que esta posicionado
‘Una vez acabado el marcado, nos posicionamos en el renglón 0—‘primer 'registro—
DgArt.Rows(0).Selected = True
‘ponemos que la celda actual es cualquier otra que no sea la ‘celda del checkbox, 'esto es para forzar la actualización —en ‘este caso yo elegi la celda 3
DgArt.CurrentCell = DgArt.Rows(0).Cells(3)
‘colocamos el valor de beginedit a true para entrar a edición
DgArt.BeginEdit(True)
‘y terminamos la edición
DgArt.EndEdit()
End If
Endif
'Cuando grabemos la rutina seria la siguiente—se puede poner en un boton de comando
Try
'donde dapedido es el sqldataadapter y dtped es la tabla desde la ‘cual llenamos el 'datagridview
dapedido.Update(dtped)
dtped.AcceptChanges()

MessageBox.Show("Las autorizaciones fueron grabadas")
Me.Close()

Catch ex As DBConcurrencyException
MessageBox.Show("Error de concurrencia al Grabar:" & vbCrLf & ex.Message)
Catch ex As Exception
MessageBox.Show(ex.Message)
End Try
'si tienen alguna mejor solución, sobre todo para que grabe la linea en que esta posicionado, por favor envienmela

6 comentarios:

  1. 28 de agosto de 2013, me ayudo mucho... gracias
    :)

    ResponderEliminar
  2. que bueno que te haya ayudado, suerte en tus proyectos!

    ResponderEliminar
  3. Mil gracias ajimenez. Me ayudó muchísimo una línea de tu código!!!

    ResponderEliminar
    Respuestas
    1. Gracias a ti Marta por comentar, que bueno que te haya sido de utilidad, buen inicio de año!

      Eliminar
  4. Genial... Funcionó!!!!!
    Muchas gracias.

    ResponderEliminar
  5. Sale Luis, suerte en tus proyectos, gracias por comentar

    ResponderEliminar