Laden...

Selektierte Items von ListBox1 zu ListBox2 kopieren

Erstellt von zerberos vor 14 Jahren Letzter Beitrag vor 14 Jahren 1.514 Views
Z
zerberos Themenstarter:in
520 Beiträge seit 2007
vor 14 Jahren
Selektierte Items von ListBox1 zu ListBox2 kopieren

Hallo zusammen,

ich habe gerade ein Problem damit Items von ListBox1 zur ListBox2 zu kopieren.

Hier mein Code:


List<ListItem> selectedItems = new List<ListItem>();
    
    foreach (ListItem item in ListBox1.Items) {
        if (item.Selected) {
            ListBox2.Items.Add(item);
            selectedItems.Add(item);
        }
    }
    
    
    foreach (ListItem item in selectedItems) {
        ListBox1.Items.Remove(item);
        
        
    }

Das wird ausgeführt wenn auf einen Button geklickt wird. Wenn ich jetzt in ListBox1 ein item selektiere und auf den Button klicke durchläuft der ja alle Einträge in ListBox 1 und prüft ob die selected sind. Aber dies ist bei allen false obwohl ja welche selektiert waren. Anscheinend verliert die ListBox ihre selektierten Items wenn ich auf einen Button klicke erstmal

Hat einer nen Vorschlag wie ich das lösen kann?

691 Beiträge seit 2007
vor 14 Jahren

Eine Möglichkeit wäre, die AutoPostBack Property der ListBox auf true zu setzen. Da dies aber, wie der Name ja schon sagt, zu einem Postback führt, würde ich die ListBox in ein UpdatePanel packen, damit nur das ListBox Control neugerendert wird.

Alternativ schau mal, ob du mit der EnableViewState der Page auf true weiterkommst, das wäre deutlich einfacher.

mit freundlichen Grüßen,
Tomot

Projekte: www.gesellschaftsspieler-gesucht.de

A
49 Beiträge seit 2009
vor 14 Jahren

Hallo,

hilft dir der Code weiter?


    private void copy_lb1_to_lb2()
    {
      object[] arr = new object[listBox1.SelectedItems.Count]; 
      listBox1.SelectedItems.CopyTo(arr, 0);
      listBox2.Items.AddRange(arr);

      for (int i = listBox1.SelectedItems.Count -1; i >= 0; i--)
      {
        listBox1.Items.RemoveAt(listBox1.SelectedIndices[i]);
      }
    }

siehe dazu auch: Galileo Computing

Viele Grüße 😃

T
307 Beiträge seit 2008
vor 14 Jahren

Das ist doch ganz einfach. Sieh Dir mal Deinen Code an!
Du weißt Deiner ListBox2 die Items von ListBox1 zu, danach löscht Du sie, also auch die von der ListBox2, da sie ja keine neuen eigenständigen Objekte sind.
Du mußt schon für die ListBox 2 NEUE items erstellen!

Z
zerberos Themenstarter:in
520 Beiträge seit 2007
vor 14 Jahren

Das ist doch ganz einfach. Sieh Dir mal Deinen Code an!
Du weißt Deiner ListBox2 die Items von ListBox1 zu, danach löscht Du sie, also auch die von der ListBox2, da sie ja keine neuen eigenständigen Objekte sind.
Du mußt schon für die ListBox 2 NEUE items erstellen!

Hallo,

da hast du recht. Allerdings komme ich erstmal garnicht bis da, da

if (item.Selected)

immer = false ist nach dem klick auf den button...