Datagridview checkboxcolumn validación
-
16-10-2019 - |
Pregunta
dataGridView tengo databound checkboxcolumns . Pero si lo active o desactive múltiples casillas de verificación, no se guardan todos los cambios. (No se dispara el método de conjuntos de propiedades en todo, tal vez en cada segundo). Sin embargo si después de cada casilla-clic, clic en otra celda (columna) antes de la casilla de verificación, a continuación, todas las acciones activarán los métodos establecidos. Por lo tanto, parece que la validación de celda no funciona en una base por célula, pero en función de cada columna (Para el checkboxcolumn). Así que, ¿cómo resolver esto?
Solución
encontrado la respuesta: DataGridView con problema célula CheckBox
Pero alternativa probablemente más fácil es poner en el método del botón Guardar:
DataGridView.EndEdit();
Otros consejos
No es muy claro lo que han intentado y lo que no funciona. Asumo que tiene una aplicación Winform y utilizar un SqlDataSource para unir una tabla de SQL-Server para su rejilla. Hay un campo booleano (bit) en su base de datos, por lo tanto, la red genera automáticamente un DataGridViewCheckBoxColumn. Usted está tratando de guardar todos los cambios que el usuario ha hecho cuando hace clic en un botón de Guardar.
¿Todos estos aciertos?
Todo lo que tiene que hacer es actualizar el conjunto de datos / tabla de datos con el adaptador de datos.
Private Sub BtnSaveChanges_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles BtnSaveChanges.Click
Me.FooTableAdapter.Update(DataSet1.Foo)
End Sub
MSD-Ejemplo: http://msdn.microsoft.com/en- uso / biblioteca / fbk67b6z.aspx
Si los cambios se deben guardar directamente a la base de datos, se puede manejar la CurrentItemChanged-evento de la BindingSource.
Private Sub FooBindingSource_CurrentItemChanged(ByVal sender As Object, ByVal e As System.EventArgs) Handles FooBindingSource.CurrentItemChanged
Dim thisDataRow As DataRow = DirectCast(DirectCast(sender, BindingSource).Current, DataRowView).Row
If thisDataRow.RowState = DataRowState.Modified Then
Me.FooTableAdapter.Update(thisDataRow)
End If
End Sub