我的要求是,如果列表框中已经存在的项目(来自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;
}
}
}
}
}
答案 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>";
}
}
}
这是我的解决方案