情况这样的
winform程序我有个datagridview中有一列是combox下拉框列,我就要把下拉框中的值选定取出来,
注意请不要告诉我是写在事件中,因为我是要遍历datagridview然后取值出来            DataGridViewComboBoxCell dgc=dataGridView1.Rows[0].Cells[5] as DataGridViewComboBoxCell;
            string s = dgc.Value.ToString();    //不对            dgc.items[0].tostring();   //能取出第0列,这样OK,关键中间的0项我是动态的,怎么取呢?

解决方案 »

  1.   

    不大明白你的要求,要是只是遍历的话下面的就可以。但是要取值的话不写进事件不是就没意义了没 for(int i=0;i<datagridview1.Rows.Count;i++)   
        {   
          combox cbk   =(combox)datagridview1.Rows[i].FindControl("comboxID");   
        } 
      

  2.   

    2人说我说的不明白,看来我真是要说下,第1:肯定是winform程序,我上面已经写了,不过4楼好像弄的是web的
    第2:就是            DataGridViewComboBoxCell dgc=dataGridView1.Rows[0].Cells[5] as DataGridViewComboBoxCell; 
                string s = dgc.Value.ToString();    //就这句我取不出值来,cell[5]是datagrid
    comboxcell,    我怎么取出下拉框当前选定值,我的问题是我取不出值来
      

  3.   

    object val = dataGridView1.Rows[0].Cells[5].Value;
    string s = val == null ? "" : val.ToString(); 
       
      

  4.   

    5楼,关键是取不出来,我明明写的是1
    2
    3
    4
    5但是就是无法取出,你写的是当不为null的时候输出,现在就为Null,但不是我想要的值
      

  5.   

    dataGridView1.Rows[0].Cells[5].Value.ToString();
    这样难道不行吗??
    为什么我这里怎么都能去出数来?
      

  6.   


    他是combox的,我确实取不出来,你的是textbox吧?    我手动在界面上点击三角然后赋值给item的,真取不出来啊
      

  7.   

    如果Value为空  那么调用ToString()方法 是会出错的.
      

  8.   

    我真不知道说你什么才好,出错当然会出错,我早就知道并我再上面已经给你解释了,答非所问,我问的是怎么让他取出来不为空, 因为我要取值,我都取不到值,还做后面的
    object val = dataGridView1.Rows[0].Cells[5].Value;
    string s = val == null ? "" : val.ToString(); 他干什么啊?   你自己看看你这个是我要取的值吗?    根本“” 和null都不是我要取的值,  服你了,你看好再答行不? 他俩都不是正确的值,我还判断他俩干啥? 
    打个比方:  你要生个自己的儿子,结果你生下来的根本不是自己的儿子,然后你问我应该怎样才能生个自己的儿子,别人缺告诉你,你把你第1个生下来的儿子教他唱歌,他要不会唱歌你教他跳舞, 简直答非所问。
      

  9.   

    DataGridViewComboBoxCell dgc=dataGridView1.Rows[0].Cells[5] as DataGridViewComboBoxCell; 
                string s = dgc.Value.ToString();    //不对             dgc.items[0].tostring();  //能取出第0列,这样OK,关键中间的0项我是动态的,怎么取呢? 
    DataGridViewComboBoxCell dgc=dataGridView1.Rows[0].Cells[5] as DataGridViewComboBoxCell; 
    这句中 dgc 是DataGridViewComboBoxCell类型的模板单元格,也可以说是一个下拉列表这句 string s = dgc.Value.ToString();    //不对 
    可能是还未提交或者其它因素让这个单元格的Value为空造成的.dgc.items[0].tostring(); 返回下拉列表内的第一个元素转换的字符串
    然后 我给你的object val = dataGridView1.Rows[0].Cells[5].Value;
    获得dataGridView1第1行第6个单元格的值string s = val == null ? "" : val.ToString(); 
    当val为空时返回空字符串,不为空时返回转换后的字符串.其实你不用管它是什么类型的列.ComboBox也好TextBox 也好,你只要去取DataGridView里的单元格的值就得了. 
      

  10.   

    其他异常情况我这里就不处理了
    当有一列为下拉框绑定时,像如下
           DataGridViewComboBoxColumn dgvcc = (DataGridViewComboBoxColumn)dgvDetail.Columns["下拉框那一列"];
                dgvcc.DataSource = source;
                dgvcc.DisplayMember = "Value";
                dgvcc.ValueMember = "Key";当要取得该列的某个cell的key时,如下
    dgv.rows[x].cells[y].value
    当要取得该列的某个cell的value时,如下
    dgv.rows[x].cells[y].EditedFormattedValue或者dgv.rows[x].cells[y].FormattedValue
    相信应该明白了吧。