实现改前数据和改后数据的两个gridcontrol 对比着编辑
时间: 2024-03-03 08:53:37 浏览: 128
要实现改前数据和改后数据的两个GridControl对比着编辑,你需要使用两个GridControl和两个GridView,并在编辑时将改动同步到另一个GridView中。
以下是一些示例代码,假设你的数据源是一个DataTable:
```csharp
// 创建两个GridControl和两个GridView
GridControl gcBefore = new GridControl();
GridView gvBefore = new GridView(gcBefore);
GridControl gcAfter = new GridControl();
GridView gvAfter = new GridView(gcAfter);
// 将两个GridView添加到对应的GridControl中
gcBefore.MainView = gvBefore;
gcAfter.MainView = gvAfter;
// 设置两个GridView的DataSource
gvBefore.GridControl.DataSource = originalDataTable;
gvAfter.GridControl.DataSource = editedDataTable;
// 将两个GridControl加入到布局控件中
layoutControl1.Controls.Add(gcBefore);
layoutControl1.Controls.Add(gcAfter);
// 编辑时同步数据
gvBefore.CellValueChanged += (sender, e) =>
{
// 将改动同步到另一个GridView中
int rowHandle = gvBefore.GetDataSourceRowIndex(e.RowHandle);
editedDataTable.Rows[rowHandle][e.Column.FieldName] = e.Value;
gvAfter.RefreshData();
};
gvAfter.CellValueChanged += (sender, e) =>
{
// 将改动同步到另一个GridView中
int rowHandle = gvAfter.GetDataSourceRowIndex(e.RowHandle);
originalDataTable.Rows[rowHandle][e.Column.FieldName] = e.Value;
gvBefore.RefreshData();
};
```
这样,你就可以在两个GridControl中对比着编辑改前数据和改后数据了。当你在一个GridView中编辑数据时,另一个GridView也会自动更新。
阅读全文