我是在datagridview中增加一个DataGridViewComboBoxColumn,设某一列中显示一个下拉列表框以供选择数据。代码如下:
DataGridViewComboBoxColumn cbc = new DataGridViewComboBoxColumn();
cbc.DataSource = dt;
cbc.DisplayMember = "性别";
cbc.ValueMember = "性别";  
cbc.DataPropertyName = "性别";
cbc.HeaderText = "性别";
dataGridView1.Columns.AddRange(cbc);
我只做到了这一步实现了显示一个下拉列表框。问题就是。。现在我不知道怎么样才能给列表框增加(男,女)选项,以供选择数据。

解决方案 »

  1.   

    另外再加一列sex,放男女字段,再itemdatabind中根据sex列处理列表.
      

  2.   

    首先谢谢楼上。不过itemdatabind,DataGridViewComboBoxColumn不包含该对像吧。请详细介绍一下。(在线等待中,各位朋友都都帮忙!!!)
      

  3.   

    男女选项应该在cbc.DataSource = dt;的dt中先加好,就可以了
      

  4.   

    DataGridViewComboBoxColumn 难道没有Item吗 ?加两个Item 啊
      

  5.   

    使用findcontrol查找出该控件就可以控制该控件了洒
      

  6.   

    w_lion(狮子)  dt要如何加?如何实现。
    hb_gx(高升)DataGridViewComboBoxColumn 是包括了items.但是不能和datasource共用。starsong(人生不如意事..十之一二...坦然面对就过去了。) 请给出详细的方法。
    (谢谢几位)
      

  7.   

    你用了datasource那么选项就应在dt中加好了,你把dt的定义和设置部分代码写出来给我看
      

  8.   

    if(e.Item.Cells[12].Text.Trim() == "")
    {
    ((DropDownList)e.Item.FindControl("ddl_listid")).SelectedIndex = 0;
    }
    else
    {
    ((DropDownList)e.Item.FindControl("ddl_listid")).SelectedIndex = 1;
    }
    e.Item.Cells[12]是绑定你的sex列,ddl_listid是你的DataGridViewComboBoxColumn ,这个是绑定,如果是保存,就取((DropDownList)e.Item.FindControl("ddl_listid")).SelectedItem.value用来保存.
      

  9.   

    如果不用datasource,在items.add中加上就可以了
      

  10.   

    dt 是我直接填充的数据表。
                da = new SqlDataAdapter("SELECT * FROM 职员基本信息表", conn);
                da.Fill(dt);
    里面不包含下拉项,男,女;我现在也就是不知道要如何加入 男,女 两要选项
      

  11.   

    对的,先在DataGridViewComboBoxColumn手工加入列表.
      

  12.   

    da = new SqlDataAdapter("SELECT * FROM 职员基本信息表", conn);
    改成
     da = new SqlDataAdapter("SELECT case sex when 0 then '男' when 1 then '女' end as sex,其他字段....  FROM 职员基本信息表", conn);
      

  13.   

    //combobox数据源
     DataTable dt = new DataTable();
                    dt.Columns.Add(new DataColumn("Sex", typeof(string)));                DataRow row = dt.NewRow();
                    row[0] = "man";
                    dt.Rows.Add(row);                DataRow row2 = dt.NewRow();
                    row2[0] = "woman";
                    dt.Rows.Add(row2);                dt.AcceptChanges();//DataGridView列
                    DataGridViewComboBoxColumn cbc = new DataGridViewComboBoxColumn();
                    cbc.DataSource = dt;
                    cbc.DisplayMember = "Sex";
                    cbc.ValueMember = "Sex";
                    cbc.DataPropertyName = "Sex";
                    cbc.HeaderText = "Sex";                DataGridViewTextBoxColumn cid = new DataGridViewTextBoxColumn();
                    cid.HeaderText = "ID";
                    cid.DataPropertyName= "ID";                DataGridViewTextBoxColumn cname = new DataGridViewTextBoxColumn();
                    cname.HeaderText = "Name";
                    cname.DataPropertyName = "Name";
                    dataGridView1.Columns.AddRange(new System.Windows.Forms.DataGridViewColumn[] {cid, cname, cbc});//DataGridView数据源
                    DataTable dtSource = new DataTable();
                    dtSource.Columns.Add("ID", typeof(Int32));
                    dtSource.Columns.Add("Name", typeof(string));
                    dtSource.Columns.Add("Sex", typeof(string));                DataRow r1 = dtSource.NewRow();
                    r1[0] = 1;
                    r1[1] = "test";
                    dtSource.Rows.Add(r1);
                    dtSource.AcceptChanges();                dataGridView1.DataSource = dtSource;
      

  14.   

    我试过手工加入列表。
    tbc.Items.AddRange(new string[] { "男", "女"});这个方法可以加入下拉列表,这个表要是没有数据,就可以正常运行,也可以供选择。但有数据后就会出现错误:datagridviewcomboboxcell值无效。要替换此黑认对话框。
      

  15.   

    问题OK了。
    maotin(liu)
    给的方法。。可以解决问题。(谢谢大家)