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?

¿Fue útil?

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
Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top