0

我想我曾经知道如何做到这一点,但我现在无法弄清楚。我正在尝试在具有关联值的组合框中分配一个列表项。原因是因为我使用数据库中的名称列表填充它,但我希望它将主键存储为一个值,以便我可以在后续查询中直接调用它。例如,您从主管列表中选择一个名称,该名称将把该主管的主键存储在一个变量中,以便在将列出所有分配了该键的员工作为主管的事件中使用。有道理?很标准。这是我只加载名称的文本部分的内容:

查询:

static string sql = "select rtrim(elname),rtrim(efname) from employee where pos_id = 2";

填充列表的代码:

try
            {
                conn.Open();
                //determine how many records affected/returned              
                int records = dbAdapter.Fill(results); //fills the datatable with results and returns the number of records

                if (records > 0)
                {
                    //do something with the results (stored in the datatable)
                    foreach (DataRow dr in results.Rows)
                    {
                        cboSupervisor.Items.Add(dr[0] + ", " + dr[1]);

                    }
                    cboSupervisor.Sorted = true;
                }
            }
            catch { }

这会用姓氏、名字填充下拉列表

4

2 回答 2

3

最好的方法是创建一个包含您要显示的信息和您要保留的信息的类,然后专门化 ToString():

    public class ComboItem : object
    {
        protected String    name;
        ....
        ....
        protected int   id;

        public ComboItem(String name, int id)
        {
            this.name= name;

            this.id = id;
        }

        public override string ToString()
        {
            return name;
        }

    };
于 2011-02-12T04:04:24.223 回答
0

您可以使用 ComboBoxItem,使用 Content 属性设置名称,并使用 Tag 属性设置值吗?然后将 ComboBoxItem 添加到 ComboBox 的 Items 集合中?

于 2011-02-12T05:46:39.310 回答