问题描述
|
技术:C#、. Net,Winforms
我有一个主要形式,可以从数据库中提取数据,并填充许多不同的控件。标签,文本框,DataRepeaters,DataGridView和选项卡也填充了这些类型的控件。
但是,数据也以这样的方式被拉出:通过BindingNavigator在此表单上有多个“记录”。
由于代码的结构,我无法轻松地在正在验证的任何控件上调用DataAdaptor.update()(使用与之关联的DataTable),所以我将使用提交按钮代替。
我想知道的是“如何检查所有控件以查看它们是否已被编辑?”
我正在使用绑定的导航器按钮作为\“ FindEditedControls()\”的触发器
当前解决方案:
DataTable dt = db.GetTable();
dt.RowChanged += new DataRowChangeEventHandler(dtUpdated);
private void dtUpdated(object sender,DataRowChangeEventArgs e)
{
needsCommit = true;
}
该按钮仅检查needsCommit布尔变量。如果为true,则要求用户先提交更改,然后再继续。如果他们单击\“是\”,则它将数据提交到数据库。
如果这是您得到的,我想谢谢您。这与DataGridViews配合得很好。现在使用标准表单控件进行测试。
解决方法
参加
DataTable.RowChanged
事件。触发时,您的控件之一已被编辑。
然后,可以检查ѭ2ѭ属性中要绑定的行的DataRowState.Modified
值。
, 从与其绑定的数据中为每个控件分配一个签名,然后使用控件的值检查该签名。