如何在添加新项目时使CheckBoxList具有唯一项目?

时间:2012-09-04 07:29:22

标签: c# asp.net

我有DropDownList项,例如:

  1. 卧室
  2. KITCHEN
  3. 浴室
  4. LIVING_HALL ......等。
  5. 我有TextBox只接受号码。

    例如,如果我从DropDownList中选择 BEDROOM ,如果我在TextBox中输入任何数字,例如。 2 DropDownList中的所选项目将与循环中的数字连接,并且button_click项目逐个添加到CheckBoxList

    1. BEDROOM1
    2. BEDROOM2
    3. 我写的.cs代码是:

      protected void Button_Click(object sender, EventArgs e)
          {
                  int q1 = Convert.ToInt16(TextBox1.Text);
                  for (int i = 1; i <= q1; i++)
                  {
                      string t1 = DropDownList1.SelectedItem.ToString().Trim();
                      CheckBoxList1.Items.Add(string.Concat(t1, i));
                  }
                  TextBox1.Text = "";
          }
      

      同样,DropDownList中的其他项目遵循相同的程序。就像选择了 KITCHEN 并且TextBox中的数字 3 一样。在button_click上,项目如:

      1. KITCHEN1
      2. KITCHEN2
      3. KITCHEN3已添加到CheckBoxList
      4. 从上面的例子中我的CheckBoxList看起来像是:

        1. BEDROOM1
        2. BEDROOM2
        3. KITCHEN1
        4. KITCHEN2
        5. KITCHEN3
        6. 所以现在我的问题是在List中添加了KITCHEN项目后,我想再次添加一个BEDROOM。

          因此,如果我从DropDownList中选择BEDROOM并在TextBox中输入 1 ,并在button_click上,我希望添加 BEDROOM4 CheckBoxList。但根据我的代码, BEDROOM1 再次添加。

          请帮助...提前谢谢你。

2 个答案:

答案 0 :(得分:2)

将处理程序重写为以下内容:

protected void Button_Click(object sender, EventArgs e)
{
    int q1 = Convert.ToInt16(TextBox1.Text);

    string t1 = DropDownList1.SelectedItem.ToString().Trim();
    int start = 1;
    string checkBoxValue = string.Concat(t1, start);
    while (CheckBoxList1.Items.Cointains(new ListItem(checkBoxValue)))
    {
        start++;
        checkBoxValue = string.Concat(t1, start);
    }

    for (int i = start; i <= start + q1 - 1; i++)
    {
        CheckBoxList1.Items.Add(string.Concat(t1, i));
    }

    TextBox1.Text = "";
}

基本上我们只是检查每个递增值是否在复选框列表集合中显示这样的元素。一旦找到缺席值,我们就像之前一样添加请求的值范围。

答案 1 :(得分:0)

在连接新项目之前,先检查它是否存在 例如,您在下拉列表中选择BEDROOM,下拉列表中已有3个BEDROOM项目。现在首先检查BEDROOM1是否存在于下拉列表中?如果是,那么将no从1增加到2,如BEDROOM1到BEDROOM2,如果它存在则再增加数...... 你可以轻松地检查项目

  bool check = DropDownList1.Items.Contains(new ListItem("name", "value"));
  if( check )
  {
      string t1 = DropDownList1.SelectedItem.ToString().Trim();
        CheckBoxList1.Items.Add(string.Concat(t1, i));
  }
  else
  {
      // again concatenate a new item 
    }

只需在

之前添加上一行