使用查询结果创建和绑定 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的主要内容,如果未能解决你的问题,请参考以下文章
关于java面向对象中查询结果方法结果集和表格数据绑定的代码
关于java面向对象中查询结果方法结果集和表格数据绑定的代码