Добавление и удаление элементов из двух списков. Как выполнить проверку, чтобы убедиться, что какой-то элемент выбран перед выполнением кода сервера - PullRequest
0 голосов
/ 08 ноября 2011

У меня есть кнопка, которую я использую для добавления значения из списка 1 в список 2

protected void btn_Add_Click(object sender, EventArgs e)
    {
        lst_grpmembers.Items.Add(lst_allmembers.SelectedItem.Text);
        lst_allmembers.Items.Remove(lst_allmembers.SelectedItem.Value);
    }

если я нажимаю кнопку добавления, не выбирая никакого значения в списке, я получаю эту ошибку

Object reference not set to an instance of an object.

так что я подумал, что я должен добавить цикл и добавил это

 foreach (ListItem lis in lst_allmembers.Items)
    {
        if (lis.Selected)
        {
        lst_grpmembers.Items.Add(lst_allmembers.SelectedItem.Text);
        lst_allmembers.Items.Remove(lst_allmembers.SelectedItem.Value);
        }
    }

для этого кода я получаю эту ошибку

Collection was modified; enumeration operation may not execute.

Как это добавление и удаление должно быть сделано в двух списках. Спасибо

Ответы [ 2 ]

0 голосов
/ 14 августа 2014

Я решил похожую проблему с временным ListBox.Взгляни на.Надеюсь, это поможет.

ListBox _temp = new ListBox();
  foreach (ListItem item in ListBox1.Items)
      if (item.Selected)
          _temp.Items.Add(new ListItem(item.Text, item.Value));
  foreach (ListItem item in _temp.Items)
      ListBox1.Items.Remove(item);
0 голосов
/ 08 ноября 2011
protected void btn_Add_Click(object sender, EventArgs e)
{
    if( lst_allmembers.SelectedItem != null )
    {
        lst_grpmembers.Items.Add(lst_allmembers.SelectedItem.Text);
        lst_allmembers.Items.Remove(lst_allmembers.SelectedItem.Value);
    }
}

Конечно, создание списка выбранных элементов обрабатывает множественный выбор:

List<ListItem> listSelected = new List<ListItem>();
foreach( ListItem li in lst_allmembers.Items )
{
    if( li.Selected )
        listSelected.Add(li);
}

foreach( ListItem li in listSelected )
{
    lst_grpmembers.Items.Add(li.Text, li.Value);
    lst_allmembers.Items.Remove(li);
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...