devexpress gridcontrol 多行数据传入

地铁 2014-07-18 10:34:15
我做了销售出货单,在gridcontrol 中加入repositoryItemButtonEdit1,点击该BUTTON出现末完成的销售订单,根据销售订单选择多行记录,传入该gridcontrol中,请问该代码该如何写?
我只会单条记录传入。
        private void repositoryItemButtonEdit1_ButtonClick(object sender, DevExpress.XtraEditors.Controls.ButtonPressedEventArgs e)
{

frm_coptghordersch f = new frm_coptghordersch();
f.khh = this.lookUpEdit2.Text.Trim();
int selectedHandle;
selectedHandle = this.gridView1.GetSelectedRows()[0];
object oldValue = string.Empty;

try
{

ph = gridView1.GetRowCellValue(selectedHandle, "TH004").ToString();
}
catch
{
ph = null;
}

f.ph = ph;

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());

}


//查询窗体点了确认按钮,
}

}



...全文
306 9 打赏 收藏 转发到动态 举报
写回复
用AI写文章
9 条回复
切换为时间正序
请发表友善的回复…
发表回复
  • 打赏
  • 举报
回复
gridView.GetSelectedRows();
埋头苦练 2014-07-18
  • 打赏
  • 举报
回复
不要太依赖grid提供的方法。 可以直接修改grid绑定的DataSource,也就是dataset
熙风 2014-07-18
  • 打赏
  • 举报
回复
取出勾选项,然后添加到目标列表
exception92 2014-07-18
  • 打赏
  • 举报
回复
单条的都会,多条的存到集合中;获取你选择的数据集。
liuruitao647 2014-07-18
  • 打赏
  • 举报
回复
遍历下选中行的单号,存一个容器里面就好了。
地铁 2014-07-18
  • 打赏
  • 举报
回复
图如下
埋头苦练 2014-07-18
  • 打赏
  • 举报
回复
引用 7 楼 leosky79082 的回复:
我已经放到数据集里有,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

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 是让你改他的结果集。
  • 打赏
  • 举报
回复
返回后Merge到原来的数据源上,保留原来的数据,这是有个参数的
地铁 2014-07-18
  • 打赏
  • 举报
回复
我已经放到数据集里有,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

110,537

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 C#
社区管理员
  • C#
  • Web++
  • by_封爱
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

让您成为最强悍的C#开发者

试试用AI创作助手写篇文章吧