首页 > 解决方案 > 根据记录动态显示组合框项

问题描述

我想根据数据表显示一个 Comboxbox 项。例如:

1 = 打开 2 = 关闭 ....

组合框内容是使用数据表创建的:

string sqlStr = "选择id,来自 sdg.pa_status 的描述";

        MySqlDataAdapter adapt = new MySqlDataAdapter();
        MySqlCommand cmd = new MySqlCommand();
        DataSet ds = new DataSet();

        cmd = new MySqlCommand(sqlStr, conn);

        adapt.SelectCommand = cmd;
        adapt.Fill(ds);

        **_status** = ds.Tables[0];

组合框被创建:

            column.Name = "status";
            column.DropDownWidth = 160;
            column.Width = 160;
            column.FlatStyle = 0;
            column.HeaderText = "Status";

            column.DataSource = **_status**;
            column.DataPropertyName = dGVQuote.Columns["**stat**"].ToString(); 
            column.ValueMember = _status.Columns[1].ToString();
            column.DisplayMember = _status.Columns[1].ToString(); 

生成数据网格:

    private void CustomizeDataGridViewOrder()
    {
        dGVQuote.DataSource = GetQuote("");

        dGVQuote.Columns["ID"].Width = 135;
        dGVQuote.Columns["ID"].HeaderText = "Angebotsnummer";
        dGVQuote.Columns["idorder"].Visible = false;
        dGVQuote.Columns["Description"].Width = 225;
        dGVQuote.Columns["Description"].HeaderText = "Beschreibung";
        dGVQuote.Columns["comment"].Width = 225;
        dGVQuote.Columns["comment"].HeaderText = "interner Kommentar";
        dGVQuote.Columns["idcust"].Visible = false;
        dGVQuote.Columns["idobj"].Visible = false;
        dGVQuote.Columns["cnt"].Width = 60;
        dGVQuote.Columns["cnt"].HeaderText = "Anzahl MA";
        dGVQuote.Columns["**stat**"].Visible = true;
        dGVQuote.Columns.Add(CreateComboBoxColumn());
        dGVQuote.Columns["valid"].Width = 135;
        dGVQuote.Columns["valid"].HeaderText = "gültig bis";

        dGVQuote.DataSource = GetQuote(""); //datatable is handed over

生无可恋。有人能帮我吗?

标签: c#datagridviewcomboboxcolumn

解决方案


推荐阅读