2016-06-23 6 views
0

ich diesen Code bin mit Daten aus der Datenbank ladenC# Entity Framework Refresh Combobox nach Daten aus einer anderen Form des Hinzufügen

protected override void OnLoad(EventArgs e) 
{ 
    base.OnLoad(e); 
comboBox1.DataSource = Dbcontext.Products.Tolist(); 

comboBox1.DisplayMember = "ProductName"; 
comboBox1.ValueMember = "ID"; 

} 

COMBOBOX, wenn ich ein neues Produkt von einem anderen Windows im selben Projekt hinzuzufügen, wenn i komm zurück, um den Wert aus der Combobox auszuwählen, den ich nicht finden kann. und diese Aktualisierung funktioniert nicht

privatevoid ComboBox1_SelectedIndexChanged(object sender, System.EventArgs e) 
    {   ComboBox1.Refresh()  

    } 

Wie kann ich das tun? Danke

+0

Sie sollten die Datenbank-Aufruf aufrufen, wenn jedes Mal, wenn ein neues Produkt hinzugefügt oder Sie laden aufrufen, wann immer Sie zurück auf die Seite kommen. – Eldho

Antwort

0

Sie können versuchen, ComboBox1.UpdateLayout() -Methode zu verwenden.

1

Einstellung der AutoPostback Eigenschaft auf true bewirkt, dass es

Sie sicher sein müssen Postback laden die dropdownlist nur if (! IsPostBack)

ListControl.AutoPostBack Property

0

Sie müssen die comboBox1 neu zu besiedeln, wenn Sie von diesem Bildschirm zu diesem Bildschirm wechseln.

Ihre Combobox-Datenquelle enthält das neu hinzugefügte Element nicht. "Dbcontext.Products.Tolist()" füllt die vorhandenen Produkte, aber ist nicht gebunden, um die neu hinzugefügten Produkte zu holen.

Sie müssen diese Aktion manuell ausführen. ein Verfahren auf Ihrem aktuellen Fenster aufrufen wie diese

void RefreshData() 
{ 
comboBox1.DataSource = null; 
comboBox1.DataSource = Dbcontext.Products.Tolist(); 
} 
Verwandte Themen