如何将datagridview中你选中的行里面的数据,反应到另一个页面相对应的各个控件中啊,我需要执行修改功能,但是就这个问题卡住了,新手前来求各位前辈帮助啊~~~

解决方案 »

  1.   

    选中的同时把数据保存到List<T>.另一个窗口读取就行,
    或者用把DATAGRIDVIEW传给另一个窗口,读取选中行的数据也可以
      

  2.   

    datarow dr =(this.datagridview1.currentrow .databounditem as datarowview ).row;
    this.textbox1.text=dr ["字段"].tostring()
      

  3.   

    Form1  private void Form1_Load(object sender, EventArgs e)
            {
                DataTable dt = new DataTable();
                dt.Columns.Add("a");
                dt.Columns.Add("b");            DataRow dr = dt.NewRow();
                dr["a"] = "123";
                dr["b"] = "321";
                dt.Rows.Add(dr);            this.dataGridView1.DataSource = dt;        }        private void button1_Click(object sender, EventArgs e)
            {
                DataRowView drView = (DataRowView)this.dataGridView1.CurrentRow.DataBoundItem;
                DataRow dr = drView.Row;
                Form2 frm = new Form2(dr);
                frm.Show();
            }
    Form2  public Form2(DataRow dr)
            {
                InitializeComponent();            this.textBox1.Text = dr["a"].ToString();
                this.textBox2.Text = dr["b"].ToString();        }
      

  4.   

    关键是获得那一行里面的值,然后把这些值传到新form里就ok了。
    int rowindex = dataGridView1.CurrentCell.RowIndex;
    value1 = dataGridView1.Rows[rowindex].Cells[0].Value;
    ...
    分别获得所有cell的值
      

  5.   

    把datagridviewrow 传递到新的窗体 再里面取相应的值就可以了。
      

  6.   

    Form2 frm = new Form2(dr);
    就是可以在另一个窗体里调用form2
      

  7.   

    我用你这种方法怎么报错啊,说是datarow受到保护,被限制,怎么解决- -
      

  8.   

    把datagridview的modifiers 的属性改成 public   
        
            试一下~~~    
      

  9.   

    不行啊,报出的是
    错误 1 “System.Data.DataRow.DataRow(System.Data.DataRowBuilder)”不可访问,因为它受保护级别限制 C:\Documents and Settings\ch\桌面\yfform\yfform\form\yuangong.cs 87 26 YFform
    这样的错误
      

  10.   

    方法比较多,可以用构造函数传值,还可以用url传值
      

  11.   

    就是写个项目的时候的数据库使用和调用,我数据库都是写好了的,调用也没问题,datagridview中我是点击直接选择的一行,我是想问怎么把我选择的这一行数据中的字段绑定到另一个页面的相对应的控件中,求个具体说明,谢谢啊
      

  12.   

    是什么架构的啊?
    如果是B/S的话你可以把你选中的那行数据放到Session里面去啊,然后再到另外一个页面获取
    如果是从数据库里面查询出来的话,你不怕浪费资源和麻烦的话,可以传一个ID过去,然后再查一次啊
    总之方法是很多的
      

  13.   

    子画面用bindsource 绑定dgv中显示的表,主画面然后通过传一个id过去,子画面用bindsource 进行一个id 筛选就行了
      

  14.   

    将每一个控件与bindsource绑定,不好意思忘说了
      

  15.   

    我觉得在gridview里面添加一列,"查看详细"进行连接页面把id传过去就行了!修改无非要id
      

  16.   


            /// <summary>
            /// 显示详细内容
             /// </summary>
            /// <param name="index"></param>
            private void ShowContents(int index)
            {
                if (index < 0)
                {
                    return;
                }
                else
                {
                    _saveFlag = false;//这个是用来标记此界面是新增还是修改的一个标记
                                   
                    this.txtOutletCode.Text = this.dgvOutlet.Rows[index].Cells["OutletCode"].Value.ToString();
                    this.ucHotelCodeSelector2.HotelCode = this.dgvOutlet.Rows[index].Cells["HotelCode"].Value.ToString();
                    this.txtOutletCnName.Text = this.dgvOutlet.Rows[index].Cells["OutletCnName"].Value == null ? "" : this.dgvOutlet.Rows[index].Cells["OutletCnName"].Value.ToString();
                    this.txtOutletEnName.Text = this.dgvOutlet.Rows[index].Cells["OutletEnName"].Value == null ? "" : this.dgvOutlet.Rows[index].Cells["OutletEnName"].Value.ToString();
                    this.txtOutletType.Text = this.dgvOutlet.Rows[index].Cells["OutletType"].Value == null ? "" : this.dgvOutlet.Rows[index].Cells["OutletType"].Value.ToString();
                    this.txtRes.Text = this.dgvOutlet.Rows[index].Cells["Res"].Value == null ? "" : this.dgvOutlet.Rows[index].Cells["Res"].Value.ToString();
                    this.txtConnectStr.Text = this.dgvOutlet.Rows[index].Cells["ConnectStr"].Value == null ? "" : this.dgvOutlet.Rows[index].Cells["ConnectStr"].Value.ToString();
                }
            }
      

  17.   

    其中index的值是单击或双击datagridview时的e.RowIndex
      

  18.   

    iwanghs你的代码是在同一个页面执行的吧,我这是2个不同的页面啊
    Greta你那种方法在winform上面行的通么,我记得那好像是ASP中的做法吧
      

  19.   

    有份DataGridView全面介绍文档不错可以看看