我有一个小问题,我无法找到解决方案。
我有一个具有自定义dataGridView的表单。 此datagridView接收数据源。 DataSource是我自己创建的数据表(稍后将被Database DataTable替换)。 到目前为止,一切都显得很好。
现在我的表单中有2个按钮。 一个保存,一个保护。 我想要做的是当我点击取消时,我希望对我的datagridView所做的更改回到原来的dataTable。
到目前为止,当我点击按钮时,它只删除所有行(列留下)。
这是我在代码中所做的事例:
public partial class UserControlMyDataGrid : UserControl
{
private DataTable originalDataTable;
public UserControlRechercheDataGrid()
{
InitializeComponent();
originalDataTable = new DataTable();
originalDataTable.Columns.Add("col A", typeof(int));
originalDataTable.Columns.Add("col B");
originalDataTable.Columns.Add("col C", typeof(bool));
originalDataTable.Columns.Add("col D");
for (int j = 0; j < 5; j++)
{
originalDataTable.Rows.Add(j, "c" + j.ToString(), true, "test");
}
dataGridView1.DataSource = originalDataTable;
}
private void buttonCancelModifications_Click(object sender, EventArgs e)
{
originalDataTable.RejectChanges();
dataGridView1.Refresh();
}
}
任何人都知道为什么会这样做?
答案 0 :(得分:0)
这是因为所有for i=2:4
all( all(R2(1:i,1:i)) )
end
都是RowState
。在最初填充数据表以使其Added
之后,您应该致电AcceptChanges
。
请参阅:https://msdn.microsoft.com/en-us/library/system.data.datarow.rowstate(v=vs.110).aspx