【问题标题】:Combo box is filling with valueMember not with the DisplayMember from DataGridView?组合框填充 valueMember 而不是 DataGridView 中的 DisplayMember?
【发布时间】:2012-05-10 20:27:46
【问题描述】:

我正在像这样填充组合框

cbDepartment.DataSource = SQLObject.Departments;
            cbDepartment.DisplayMember = "Name";
            cbDepartment.ValueMember = "Id";

和这样的数据gridview

EmployeeGrd.DataSource = SQLObject.sp_ViewEmployee();

组合框正在填充另一个表,它是我的查找表“部门”,它只包含“名称”和“ID”,而 DataGridView 填充了来自另一个表的存储过程,该表只包含部门的“ID”表格当我从数据网格视图填充组合框时,它在组合框中填充“Id”,我需要填写“Name”而不是“Id”任何人都可以帮忙吗???

我正在像这样填充组合框。

 comboBox1.SelectedText = dataGridView1.SelectedRows[0].Cells[1].Value.ToString();

【问题讨论】:

  • 你能解释一下为什么你有最后一行代码吗? tis 与问题有什么关系?您显示的所有内容看起来都很好 - datagridview 中的组合框列应该显示来自该数据源的属性的名称。您可能需要设置 DataPropertyName,但我认为这不会影响显示。
  • 是的,数据源的重点是您不必填写绑定控件注释掉该行,看看会发生什么。
  • 组合框不在网格中,它在它的外部我必须从 datagrid 填充这个组合框,最后是我现在正在做的事情,但它并不完整,因为它的给定值成员我需要用它填充组合框显示成员。
  • @TonyHopkinson 对不起,我没有找到你...
  • Id 看起来并不奇怪 组合框应该填充文本(“名称”)而不是 Id,人员看不到他需要在前端工作的查找表,他对数据库视而不见。

标签: c# winforms datagridview


【解决方案1】:

DataGridView 单元格有一个属性FormattedValue,您需要在这里使用它。

comboBox1.SelectedText = dataGridView1.SelectedRows[0].Cells[1].FormattedValue.ToString(); 

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-01-08
    • 1970-01-01
    • 2020-07-27
    • 1970-01-01
    相关资源
    最近更新 更多