0

我们如何将数据网格视图中的一行或多行复制到同一表单上的其他数据网格视图。在这里,我有从第一个网格搜索的搜索选项,如果找到一些匹配的行,则将它们复制到第二个网格。我怎样才能做到这一点?

4

1 回答 1

1

你可以这样做:

ConvertGridToTable();  // Add data in Datatabledt from gridview
Clipboard.Clear();
DataObject data = new DataObject(DataFormats.Serializable, Datatabledt);
MessageBox.Show("Data Copied.");
Clipboard.SetDataObject(data);

现在 Datatabledt 在剪贴板中可用,您可以将其粘贴到第二个 gridview 中,您可以这样做:

DataObject data = (DataObject)Clipboard.GetDataObject();
DataTable dt = (DataTable)data.GetData(DataFormats.Serializable);

foreach (DataRow dr in dt.Rows)
{
    dtData.ImportRow(dr);
}
dtData.AcceptChanges();
grdProgramData.DataSource = dtData;
MessageBox.Show("Data Pasted.");

编辑:

对于一行或多行,您可以通过循环选择行来实现。

编辑

这是 ConvertGridToTable 中的内容

private void ConvertGridToTable()
{

    if (Datatabledt.Rows.Count > 0)
    { }

    Datatabledt = dtData.Clone();

    foreach (DataGridViewRow gr in YOURGRIDVIEW.SelectedRows)
    {
        DataRow dc = Datatabledt.NewRow();
        dc["KEY-FIELD"] = Int32.Parse(gr.Cells[0].Value.ToString());
        .....

        Datatabledt.Rows.Add(dc);
    }
    Datatabledt.AcceptChanges();
}
于 2012-07-10T07:03:40.553 回答