我有一个DataTable
,initalTable,其中包含一些初始价格。我将此DataTable用作DataSource
的{{1}}。用户可以更改GridView
中的某些值,但我的initialTable中的值也会被修改。我该如何绕过这个绑定?我需要在GridView
中的用户更改的值与我最初存储在GridView
中的值之间进行交叉引用。
答案 0 :(得分:2)
您可以使用GetChanges方法或只使用clone DataTable。
private IEnumerable<String> GetChangedWithCrossReference()
{
return from originalRow in this.storeDataSet.PricesDataTable
join changedRow in this.storeDataSet.PricesDataTable.GetChanges(DataRowState.Changed)
on changedRow["Id"] equals originalRow["Id"]
select String.Format("Was {0}, became {1}",
originalRow ["Value"],
changedRow["Value"]);
}
甚至更好更快MSDN:
private IEnumerable<String> GetChangedWithCrossReference()
{
return from row in this.storeDataSet.PricesDataTable
select String.Format("Was {0}, became {1}",
row ["Value"],
row ["Value", DataRowState.Original])
where row.State == DataRowState.Changed;
}