繁体   English   中英

Datagridview复选框列验证

[英]Datagridview checkboxcolumn validation

DatagridView中,我具有数据绑定的checkboxcolumns 但是,如果我选中或取消选中多个复选框,则不会保存所有更改。 (它不会触发属性Set方法,也许不会触发所有方法)。 但是,如果我在每次单击复选框后都单击下一个复选框之前的另一个单元格(列),则所有操作将触发Set方法。 因此,似乎单元格验证不是在每个单元格的基础上进行,而是在每个列的基础上进行(对于checkboxcolumn)。 那么您如何解决呢?

找到了答案: 带有CheckBox单元格的DataGridView问题

但可能更简单的替代方法是放入保存按钮方法:

DataGridView.EndEdit();

目前还不清楚您尝试过什么,什么没用。 我假设您有一个Winform应用程序,并使用SqlDataSource将SQL-Server表绑定到网格。 您的数据库中有一个布尔(位)字段,因此网格会自动生成一个DataGridViewCheckBoxColumn。 您正在尝试保存用户单击保存按钮时所做的所有更改。

所有这些猜测是否正确?

您要做的就是使用dataadapter更新数据集/数据表。

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

如果更改应直接保存到数据库,则可以处理BindingSource的CurrentItemChanged事件

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

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM