Datagridview флажок проверка столбца - PullRequest
0 голосов
/ 21 января 2011

В DatagridView У меня есть столбцы с привязкой к данным .Но если я установлю или сниму несколько флажков, не все изменения будут сохранены.(Он не вызывает свойство Set метода для всех, может быть, для каждого второго).Однако если я после каждого щелчка флажка нажимаю на другую ячейку (столбец) перед следующим флажком, то все действия вызовут методы Set.Таким образом, кажется, что проверка ячейки работает не для каждой ячейки, а для каждого столбца (для флажка).Итак, как вы решаете это?

Ответы [ 2 ]

3 голосов
/ 22 января 2011

Найден ответ: DataGridView с проблемой ячейки CheckBox

Но, вероятно, более простой альтернативой является использование метода кнопки сохранения:

DataGridView.EndEdit();
0 голосов
/ 22 января 2011

Не совсем понятно, что вы пробовали, а что не работает.Я предполагаю, что у вас есть приложение Winform и вы используете SqlDataSource для привязки таблицы SQL-Server к вашей сетке.В вашей базе данных есть логическое (битовое) поле, поэтому сетка автоматически генерирует DataGridViewCheckBoxColumn.Вы пытаетесь сохранить все изменения, сделанные пользователем, когда он нажимает кнопку сохранения.

Все ли эти предположения верны?

Все, что вам нужно сделать, это обновить ваш набор данных /с возможностью передачи данных с помощью адаптера данных.

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-пример: http://msdn.microsoft.com/en-use/library/fbk67b6z.aspx

Если изменения необходимо сохранить непосредственно в базе данных, вы можете обработать CurrentItemChanged-event 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
...