1

私は次のDropDownListようなアイテムを持っています:

  1. ベッドルーム
  2. 台所
  3. トイレ
  4. LIVING_HALL......など。

私はTextBox番号だけを受け入れるものを持っています。

たとえば、からBEDROOMDropDownListを選択し、たとえばに任意の数字を入力した場合TextBox2、で選択されたアイテムはDropDownList、ループに入れられた番号と連結され、button_clickでアイテムが1つずつ追加されますCheckBoxList

  1. ベッドルーム1
  2. BEDROOM2

私が書いた.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. BEDROOM2
  3. キッチン1
  4. キッチン2
  5. キッチン3

だから今私の問題はリストにキッチンアイテムを追加した後、もう一度ベッドルームを1つ追加したいと思います。

したがって、からBEDROOMを選択し、に1DropDownListと入力し、button_clickで、BEDROOM4をに追加する必要があります。しかし、BEDROOM1は私のコードに従って再び追加します。TextBoxCheckBoxList

親切に助けてください...よろしくお願いします。

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 がドロップダウンに存在するかどうかを確認します。はいの場合は、BEDROOM1 から BEDROOM2 のように no を 1 から 2 に増やします。存在する場合は、もう一度番号を増やします。次のようにアイテムを簡単に確認できます。

  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 に答える