datagridviewcombobox columns 依赖于另一列

Posted

技术标签:

【中文标题】datagridviewcombobox columns 依赖于另一列【英文标题】:datagridviewcombobox columns Dependent on another column 【发布时间】:2013-09-10 20:27:40 【问题描述】:

如何在 gridviewcomboboxcolumns 上做这项工作任何想法 plx

//表单加载事件

string query="select article_name from article";
SqlCommmand cmd = new SqlCommand(query,con);
SqlDataAdapter da= new SqlDataAdapter(cmd);
DataTable dt=new DataTable();
da.Fill(dt);
combobox1.items.clear();
for(int i=0;i<dt.rows.count;i++)

 combobox1.items.add(dt.rows[i].cells[0].toString());

\ComboBox1 选定的索引更改事件

string query1="select description from article where article_name='"+combobox1.selectedItem.ToString()+"'";
SqlCommmand cmd1 = new SqlCommand(query1,con);
SqlDataAdapter da1= new SqlDataAdapter(cmd);
DataTable dt1=new DataTable();
da1.Fill(dt1);
combobox2.items.clear();
for(int i=0;i<dt1.rows.count;i++)

 combobox2.items.add(dt1.rows[i].cells[0].toString());

\Now 假设这 2 个组合框是 gridviewCombobox 列那么如何制作 这项工作在 gridviewcombobox 列上

Project in Windows Form in C#

【问题讨论】:

同样的问题兄弟,我也需要这个 【参考方案1】:

几个月后我将发布此answer,因为它有助于 那些在DataGridviewComboboxcell 上面临问题的人 我做了我自己的技能首先填写我的第一个/主列

SqlCommand objCmd = new SqlCommand("select distinct article_name from Setup_article_custominvoice", con);
                    SqlDataAdapter objDA = new SqlDataAdapter(objCmd);
                    objDA.SelectCommand.CommandText = objCmd.CommandText.ToString();
                    DataTable dt = new DataTable();
                    objDA.Fill(dt);
                    article.DataSource = dt;
                    //this column1 will display as text
                    article.DisplayMember = "article_name";

在那之后我继续Cell End Edit

if (dataGridView1.CurrentCell == dataGridView1.CurrentRow.Cells["article_name"])
                
                    string CategoryValue = "";
                    //string CategoryValue1 = "";

                    if (dataGridView1.CurrentCell.Value != null)
                    
                        CategoryValue = dataGridView1.CurrentCell.Value.ToString();
                        //CategoryValue1 = dataGridView1.CurrentCell.Value.ToString();
                    
                    //SqlConnection objCon = new SqlConnection(@"Data Source=.\SqlExpress;Initial Catalog=dbTest3;Integrated Security=True");
                    string query = "select article_name,composition from Setup_article_custominvoice where article_name='" + CategoryValue + "'";
                    SqlCommand objCmd = new SqlCommand(query, con);

                    SqlDataAdapter objDA = new SqlDataAdapter(objCmd);

                    objDA.SelectCommand.CommandText = objCmd.CommandText.ToString();
                    DataTable dt = new DataTable();

                    objDA.Fill(dt);

                    DataGridViewComboBoxCell t = dataGridView1.Rows[dataGridView1.CurrentCell.RowIndex].Cells[2] as DataGridViewComboBoxCell;
                    t.DataSource = dt;
                    t.DisplayMember = "composition";

                

【讨论】:

以上是关于datagridviewcombobox columns 依赖于另一列的主要内容,如果未能解决你的问题,请参考以下文章

DataGridViewCombobox 列中的自动完成有啥奇怪的行为?

DataGridViewComboBox 索引更改事件故障

在 DataGridViewComboBox 下拉列表中设置特定项目的颜色

如何从填充 DataGridViewComboBox 中选择一个项目

值未显示在 DataGridViewComboBox 控件上

尝试使用 DataGridViewComboBox 和 ValueMember 时出现 System.ArgumentException