1

我有一个DropDownList类似的项目:

  1. 卧室
  2. 厨房
  3. 浴室
  4. LIVING_HALL……等等……

我有一个TextBox只接受号码。

例如,如果我从 中选择BEDROOM,并且如果我在for 例如DropDownList中键入任何数字。2, and 中的选定项目将与放入循环中的数字连接,并且在 button_click 上的项目被一一添加到类似:TextBoxDropDownListCheckBoxList

  1. 卧室1
  2. 卧室2

我写的.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并且中的数字TextBox3一样。在 button_click 上,项目如下:

  1. 厨房1
  2. 厨房2
  3. 将 KITCHEN3 添加到CheckBoxList.

从上面的例子我CheckBoxList会看起来像:

  1. 卧室1
  2. 卧室2
  3. 厨房1
  4. 厨房2
  5. 厨房3

所以现在我的问题是在列表中添加了 KITCHEN 项目后,我想再次添加一个 BEDROOM。

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

请请帮助...在此先感谢您。

4

2 回答 2

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 = "";
}

本质上,我们只是检查每个递增值是否存在于复选框列表集合中。一旦找到不存在的值,我们就会像以前一样添加请求的值范围。

于 2012-09-04T07:36:53.843 回答
0

在连接一个新项目之前首先检查它是否存在 例如,您在下拉列表中选择 BEDROOM 并且下拉列表中已经有 3 个 BEDROOM 项目。现在首先检查 BEDROOM1 是否存在于下拉列表中?如果是,则将编号从 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 
    }

只需在前面添加上面的行

于 2012-09-04T07:40:44.867 回答