简体   繁体   English

从两个列表框中添加和删除项目。 如何执行验证检查,以确保在执行服务器代码之前选择了某些项目

[英]Adding and removing items from two list box. How to do validation check so that to make sure some item is selected before the server code is executed

I have a button which I am using to add value from list 1 to list 2 我有一个按钮,用于将清单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);
    }

if i click the add button without selecting any value in the list box then I get this error 如果我单击添加按钮但未在列表框中选择任何值,则出现此错误

Object reference not set to an instance of an object.

so i thought I should Add some loop and added this 所以我想我应该添加一些循环并添加此

 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);
        }
    }

for this code I get this error 对于此代码,我得到此错误

Collection was modified; enumeration operation may not execute.

How should this adding and removing should be done in two list box. 如何添加和删除应该在两个列表框中完成。 Thanks 谢谢

i solved a similar problem with a temporary ListBox. 我用一个临时的ListBox解决了类似的问题。 Take a look at. 看一眼。 I hope it helps. 希望对您有所帮助。

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);
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);
    }
}

Of course, creating a list of selected items handles multi-select: 当然,创建所选项目的列表可以进行多选:

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);
}

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM