在listBox中添加一个项目

时间:2015-12-22 18:49:51

标签: c# asp.net

我的要求是,如果列表框中已经存在的项目(来自textBox的文本)然后根本不添加。但是我不能在我的foreach循环中使用的其他部分来添加项目。这是我的code.Help我如何在列表框中没有项目的情况下添加项目。

protected void Button1_Click(object sender, EventArgs e)
{
      if (RadioButton1.Checked)
      {
            if (ListBox1.Items.Count == 0)
            {
                ListBox1.Items.Add(TextBox1.Text);
                Label2.Text = "<b style='color:green'> item updated in the listbox </b>";
            }
            else 
            {
                foreach (ListItem li in ListBox1.Items)
                {
                    if (li.Text.ToUpper() == TextBox1.Text.ToUpper())
                    {
                        Label2.Text = "<b style='color:red'> access denied 
                        break;
                    }
                }

            }

        }

    }

3 个答案:

答案 0 :(得分:2)

简单地说:

ListItem item = new ListItem(TextBox1.Text);

if (!ListBox1.Items.Contains(item))
{
//Add item here
}

答案 1 :(得分:0)

如果您使用 System.Windows.Controls 中的列表框,Quentin Roger已经为您提供了正确的解决方案。我只是试着看看 为什么它不起作用。您只需在另一个项目中测试它:

ListBox lb = new ListBox();
lb.Items.Add("Test");
bool b = lb.Items.Contains("Test");

b将是真的。

抱歉,我知道这应该在评论中,而不是单独的答案,但是 我没有权利写评论。

答案 2 :(得分:0)

    bool status = false;
  if (RadioButton1.Checked)
    {
        if (ListBox1.Items.Count == 0)
        {
            ListBox1.Items.Add(TextBox1.Text);
            Label2.Text = "<b style='color:green'> item updated in the listbox </b>";
        }
        else 
        {
            foreach (ListItem li in ListBox1.Items)
            {
                if (li.Text.ToUpper() == TextBox1.Text.ToUpper())
                {
                    Label2.Text = "<b style='color:red'> access denied </b>";
                    status = true;
                    break;
                }

            }
            //ListItem item = new ListItem(TextBox1.Text);
            //if (!ListBox1.Items.Contains(item))
            //{
            //    ListBox1.Items.Add(TextBox1.Text);
            //    Label2.Text = "<b style='color:green'> item updated in the listbox </b>";
            //}
            if (status == false)
            {
                ListBox1.Items.Add(TextBox1.Text);
                Label2.Text = "<b style='color:green'> item updated in the listbox </b>";
            }
        }

    }

这是我的解决方案