Установить выбранное по умолчанию значение ComboBox в DataGridView - PullRequest
0 голосов
/ 13 января 2019

Моя форма состоит из DataGridView, и внутри нее у меня есть один столбец как ComboBox.
ComboBox заполняется запросом к базе данных.

Я хотел отобразить значение ComboBox по умолчанию в DataGridView. Я загрузил значения в поле со списком, но не смог найти способ установить значение по умолчанию для этого.

Layout

Я добавил значения в поле со следующим кодом при нажатии кнопки btnLoadCombo:

private void btnLoadCombo_Click(object sender, EventArgs e)
{
    SqlConnection con = new SqlConnection(ConfigurationManager.ConnectionStrings["InventoryManagerConnectionString"].ConnectionString);

    //Filling ComboBoxes
    con.Open();
    SqlCommand cmdGetRootCat = new SqlCommand("SELECT * FROM tblProductCategories", con);

    SqlDataReader sdaRootCat = cmdGetRootCat.ExecuteReader();
    comboBoxCatTest.Items.Clear();

    while (sdaRootCat.Read())
    {
        this.CatCombo.Items.Add(sdaRootCat["Cat_Name"]);
    }

    //Filling DataGridView
    DataTable dt = new DataTable();
    dt.Clear();
    SqlCommand cmd = new SqlCommand("SELECT Cat_ID, Cat_Name FROM tblProductCategories", con);

    SqlDataReader sda = cmd.ExecuteReader();
    dt.Load(sda);
    dataGridCatList.DataSource = dt;
    con.Close();            
 }

Я ожидаю результатов, как показано на рисунке 2.

1 Ответ

0 голосов
/ 13 января 2019

Вы можете использовать

foreach(DataGridViewRow row in dataGridCatList.Rows)
{
    if(row.Cells[3].Value != null) //ignore last row which is empty
    {
        if( row.Cells[3].Value.Equals(1018) )
            row.Cells[0].Value = this.CatCombo.Items[0];
    }
    //...and so on
}

Вы просматриваете каждую строку с помощью цикла foreach() и сравниваете значение Cat_ParentCat с row.Cells[3].Value.Equals(Cat_ParentCatValue). Если совпадение найдено, установите значение ComboBox по умолчанию с помощью row.Cells[0].Value = this.CatCombo.Items[yourDefaultValue];

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...