2016-04-28 6 views
1

Mein Problem ist; Wenn ich auf eine Schaltfläche klicke, gebe ich Elemente in Liste ein, nächste in DropDownList. Problem ist, wo ich in der DropDown-Taste wieder auf vorhandene Elemente klicke.C# - Elemente aus der Liste entfernen, wenn auf die Schaltfläche geklickt wird

So lösen Sie dieses Problem (Entschuldigung für das Bild)?

enter image description here

List<string> companyList = new List<string>(); 

    foreach (string item in companyList.ToList()) 
    { 
    companyList.Remove(item); ----> this not working....... 
    } 

    foreach (SPListItem item in myItemCol) 
    { 
    companyList.Add(item["Company"].ToString()); 
    } 

    companyList.Sort(); 

    foreach (string item in companyList.Distinct()) 
    { 
     ddComFilter.Items.Add(item.ToString()); 
    } 
+0

Sie könnten nur prüfen, ob ein Artikel bereits in der Liste enthalten ist, und fügen Sie dann nicht, es – Andrei

+0

Wie überprüfen ..// – Gohyu

+0

Warum nicht? Irgendwelche Fehler? – Imad

Antwort

2

Sie Ihre Drop-Down-Liste vor dem Hinzufügen als Elemente löschen sollten:

companyList.Sort(); 

    ddComFilter.Items.Clear(); // clear 
    foreach (string item in companyList.Distinct()) 
    { 
     ddComFilter.Items.Add(item.ToString()); 
    } 
+0

Sie sollten klarer sein, und erklären wenig mehr bei der Beantwortung.Sie haben viele unerwünschte Codes in der Antwort – Suji

+0

@ Suji, Antwort wurde bearbeitet –

3

können Sie die Contains Methode verwenden, um zu überprüfen, ob es schon da ist

if(!ddComFilter.Items.Contains(items.ToString()) 
{ 
    ddComFilter.Items.Add(item.ToString()); 
} 

Dies wird nur das Element hinzufügen, wenn es nicht bereits in der Dropdown-Liste ist

3

Sie können prüfen, ob das Element vorhanden ist, bevor Sie es zur Liste hinzufügen.

foreach (SPListItem item in myItemCol) 
    { 
    if(!companyList.Contains(item["Company"].ToString()) 
    { 
     companyList.Add(item["Company"].ToString()); 
    } 
    } 

Dann müssen Sie den ddComFilter löschen, bevor die Werte ihm hinzufügen:

companyList.Sort(); 
ddComFilter.Items.Clear(); 
foreach (string item in companyList.Distinct()) 
    { 
     ddComFilter.Items.Add(item.ToString()); 
    } 

Alternative Lösung:

Sie können die ddComFilter binden, um die erzeugte Liste verwenden, anstatt für Iterieren die Sammlung und fügen Sie eins nach dem anderen hinzu. Wenn ja, brauchen Sie nicht, die Sammlung zu löschen, entfernen Sie Elemente usw. Der Code hierfür wird sein:

ddComFilter.Datasource = companyList; 
ddComFilter.DataBind(); 

Hier ist eine nützliche article für Sie

+0

Ich denke, das ist der falsche Teil des Codes, das ist, wo er die Liste füllt, die Eingaben in das Dropdown, die möglicherweise keine Werte in es zu beginnen, auch wenn das Dropdown –

+0

Dies funktioniert nicht :( – Gohyu

+0

wieder hinzufügen Ich existierte einige Artikel .. – Gohyu

Verwandte Themen