不要太依赖grid提供的方法。可以直接修改grid绑定的DataSource,也就是dataset

解决方案 »

  1.   

    我已经放到数据集里有,dtt 就是我刷选的集合,我只是不会在GRIDcontrol 中,向下自动填充选中的数据,不能修改grid绑定的DataSource,假如,我第一行选个记录,第二行又去点BUTTON 帅选一个记录,第二次不是把第一次的 覆盖了,而且,我选中后,有些资料还必须手动书写的,
     f.ShowDialog();
                if (f.DialogResult == DialogResult.OK)
                {
                    // gridView1.Columns.Clear(); 
     
     
                    this.dtt = f.DT1;
     
                    var bte = sender as ButtonEdit;
                    for (int i = 0; i < dtt.Rows.Count; i++)
                    {
                        bte.EditValue = dtt.Rows[i][0].ToString();
                        this.gridView1.SetRowCellValue(selectedHandle, "TH013", dtt.Rows[i][0].ToString());
                        this.gridView1.SetRowCellValue(selectedHandle, "TH014", dtt.Rows[i][1].ToString());
                        this.gridView1.SetRowCellValue(selectedHandle, "TH015", dtt.Rows[i][2].ToString());
                        this.gridView1.SetRowCellValue(selectedHandle, "TH004", dtt.Rows[i][3].ToString());
                        this.gridView1.SetRowCellValue(selectedHandle, "TH004", dtt.Rows[i][3].ToString());
                    
                    }
     
     
                    //查询窗体点了确认按钮,
                }
    这上面dtt 就是选中多行的DataTable
      

  2.   

    返回后Merge到原来的数据源上,保留原来的数据,这是有个参数的
      

  3.   

    DataTable Srcdt = (DataTable)gridView1.DataSource;
     for (int i = 0; i < dtt.Rows.Count; i++)
    {
           DataRow dr = Srcdt .NewRow();
           bte.EditValue = dtt.Rows[i][0].ToString();
           
           dr.BeginEdit();
           dr["TH013"] = dtt.Rows[i][0].ToString();
           dr["TH014"] = dtt.Rows[i][1].ToString();
           dr["TH015"] = dtt.Rows[i][2].ToString();
           dr["TH004"] = dtt.Rows[i][3].ToString();
           dr.EndEdit();
           Srcdt .Rows.Add(dr);           
     }
    简单写了一个,说修改dataset,不是让你直接把gridview.datasource的结果换成dtt是让你改他的结果集。