2016-07-09 2 views
0

My combobox определяет, какие элементы отображаются в списке. Однако при изменении индекса список не обновляется.ListBox не обновляется при изменении индекса combobox

private void cmbProdType_SelectedIndexChanged(object sender, EventArgs e) 
{    
    String query = "Select * From Product Where ProductType = '"+cmbProdType.SelectedValue+"'";  
    Prods = db.GetDataTable(query); 
    dataGridView1.DataSource = Prods; 
    foreach (DataRow dr in Prods.Rows) 
    { 
     ProdName.Add(dr[1].ToString()); 
     PrevCount.Add(int.Parse(dr[2].ToString()));     
    } 
    listBox1.DataSource = ProdName; 
    listBox2.DataSource = PrevCount;  
}  

Обновлено datagridview, поэтому он исключает возникновение ошибки.

+0

ли это окна формы? или ASP.NET? – user3185569

+0

Это формы окон – Cleaven

+0

Прежде всего, используйте параметризованные запросы для предотвращения атак SQL Injection. Тогда достаточно установить 'listBox1.DataSource = Prods; ', а затем установить' listBox1.DisplayMember' имя поля типа продукта, например '' Name "'. Также, если вы хотите использовать 'SelectedValue'' listBox1', вам нужно установить его 'ValueMember' в файл' ProductType', например '' Id ''. –

ответ

0

Кроме того, необходимо установить DataTextField и DataValueField как

listBox1.DataSource = ProdName; 
listBox1.DataTextField = "Value"; 
listBox1.DataValueField = "Key"; 

Кроме того, если это ASP.NET то вам нужно позвонить DataBind()

listBox1.DataBind(); 
Смежные вопросы