使用查询结果创建和绑定 DataGridViewColumn。将其添加到 DataGridView

Posted

技术标签:

【中文标题】使用查询结果创建和绑定 DataGridViewColumn。将其添加到 DataGridView【英文标题】:Create and Bind DataGridViewColumn with query results. Add it to DataGridView 【发布时间】:2014-04-06 07:58:03 【问题描述】:

我正在拼命尝试以编程方式将 DataGridViewComboBoxColumn 添加到我的 DataGridView。这是我到目前为止的代码。

DataTable dt = new DataTable();
dt = _userBL.getUsersTable().DefaultView.ToTable(false, "Person_ID", "FirstName", "LastName", "Title", "Username");
dataGridView1.DataSource = dt;

DataGridViewComboBoxColumn ComboBoxCell = new DataGridViewComboBoxColumn();
ComboBoxCell.Name = "State";
ComboBoxCell.ValueMember = "State";//ComboBoxCell.DisplayMember = "State";
ComboBoxCell.DisplayMember = "State"; 
ComboBoxCell.DataSource = _userBL.getUsersTable().DefaultView.ToTable(false, "State");
this.dataGridView1.Columns.Add(ComboBoxCell);

但是我在组合框列中没有数据,并且由于我添加了数据源,因此我无法在其中添加项目(活动、非活动)。此外,当我单击它时,应该会出现一个小的下拉列表,即使对于空的组合框也是如此,但它不会。 提前致谢!

【问题讨论】:

【参考方案1】:

试试这个..

DataGridViewComboBoxColumn combo = (DataGridViewComboBoxColumn)dataGridView1.Rows[dataGridView1.Rows.Count - 1].Cells[1].OwningColumn;
            dt.Clear();
            da = new SqlDataAdapter("select name from tblData", con);
            da.Fill(dt);
            combo.DataSource = dt;
            combo.DisplayMember = "name";

【讨论】:

我无法从 DataGridViewTextBoxColumn 转换为 DataGridViewComboBoxColumn(您的第一行)。另外,我不明白你为什么要这样设置索引。 我的代码也可以工作,但是因为我有我的 datagridview,editmode = editprogramatically,我无法访问下拉列表。

以上是关于使用查询结果创建和绑定 DataGridViewColumn。将其添加到 DataGridView的主要内容,如果未能解决你的问题,请参考以下文章

来自 Datagridview C# 的审计表

关于java面向对象中查询结果方法结果集和表格数据绑定的代码

关于java面向对象中查询结果方法结果集和表格数据绑定的代码

关于java面向对象中查询结果方法结果集和表格数据绑定的代码

将实体框架对象绑定到 Datagridview C#

视图未绑定架构?