使用已排序的DataGridView插入一行

时间:2009-11-02 22:09:12

标签: c# winforms datagridview sql-server-ce

我的DataGridView绑定到与Insert Form相同的BindingSource,并且Name列被排序。插入完成后,groupBindingSource.Current不会返回新插入的DataRowView,而是返回排序顺序中的最后一行,这使得Update不执行任何操作。

        FormGroup formGroup = new FormGroup();
        formGroup .Source = groupBindingSource;
        formGroup .setMode(FormGroup.Mode.Insert);
        if (formGroup .ShowDialog() == DialogResult.OK)
        {
            DataRowView drv = (DataRowView)groupBindingSource.Current;
            grupoTableAdapter.Update(drv.Row);
        }

2 个答案:

答案 0 :(得分:0)

您可以在插入之前禁用排序并在之后启用它吗?

类似的东西:

//...
//disable sorting
if (formGroup .ShowDialog() == DialogResult.OK)
{
    DataRowView drv = (DataRowView)groupBindingSource.Current;
    grupoTableAdapter.Update(drv.Row);
}
//enable sorting

答案 1 :(得分:0)

    DataRowView drv = (DataRowView)source.AddNew();
    grupoTableAdapter.Update(drv.Row);
    grupoBindingSource.Position = grupoBindingSource.Find("ID", drv.Row.ItemArray[0]);

它使得绑定的DataGridView相应地选择新添加的行,即使任何列已经整理出来。