您可以使用 UltraGrid 提供的方法调用 UpdateData() 来更新所有多行,而无需逐行或逐单元跟踪更改
UpdateData 方法更新网格中的任何修改信息,并将其发送给数据提供者。更新完成后,任何标记为已修改数据的行都将清除该标记。
UpdateMethod 需要从仍处于编辑模式的单元格中退出,这是一个错误,要解决它,您需要使用它,如下所示
ultraGrid1.PerformAction(Infragistics.Win.UltraWinGrid.UltraGridAction.ExitEditMode);ultraGrid1.UpdateData();
关于为什么以这种方式使用它的更多细节可以在这里找到http://devcenter.infragistics.com/Support/KnowledgeBaseArticle.Aspx?ArticleID=4220
要回答您的第二个问题,您必须以这种方式使用 UpdateData 方法
e.g.
private void ultraButton1_Click(object sender, EventArgs e)
{
ultraGrid1.UpdateData();
this.dbRowsTableAdapter.Update(this.testDataSet);
ultraButton1.Enabled = false;
}
再一次,UltraGrid 似乎保持其本地数据纯粹,因此您必须调用 TableAdapter 的 Update 方法,这意味着您必须创建一个 DataSet 并用 SqlDataAdapter 填充它。
请参阅论坛清楚地解释为什么 UltraGrid.UpdateData 方法不会在此处提交回数据库http://www.infragistics.com/community/forums/t/57161.aspx