【问题标题】:Fill Combo-box via DataSource Using Values from Various Columns使用来自不同列的值通过数据源填充组合框
【发布时间】:2010-06-12 04:00:34
【问题描述】:
            Employee emp = new Employee();
            comHandledBySQt.DataSource = emp.GetDataFromTable("1");
            comHandledBySQt.DisplayMember = "FirstName";

上面的代码在组合框中显示员工名字的下拉列表。我想显示名字和姓氏。我该怎么做?

我尝试在下面包含两列 FirstName 和 LastName,但没有成功。

comHandledBySQt.DisplayMember = "FirstName" + " " + "LastName";

任何帮助将不胜感激。

【问题讨论】:

    标签: c# .net asp.net vb.net winforms


    【解决方案1】:

    如果您需要立即与数据源进行绑定,则需要为此创建一个自定义视图。或者您可以遍历从 emp.GetDataFromTable() 返回的行,并使用 string.Format() 或一些字符串操作将每一行添加到 DropDown。

    【讨论】:

      【解决方案2】:

      最简单的方法是选择具有所需值的匿名对象。

         Employee emp = new Employee();
         comHandledBySQt.DataSource = from x in emp.GetDataFromTable("1")
                          select new { x.Id, Name = x.FirstName + " " + x.LastName };
         comHandledBySQt.DisplayMember = "Name";
         comHandledBySQt.ValueMember = "Id";
      

      【讨论】:

      • 我对 Linq 不是很熟悉。我收到此错误:“无法将 lambda 表达式转换为类型 'string',因为它不是委托类型” - 关键字选择变为蓝色下划线,请您提供建议。谢谢
      猜你喜欢
      • 2014-03-10
      • 2019-07-15
      • 2019-01-07
      • 1970-01-01
      • 1970-01-01
      • 2015-01-03
      • 1970-01-01
      • 1970-01-01
      • 2021-05-27
      相关资源
      最近更新 更多