1

for ループ アルゴリズムを使用して、動的に生成されたチェックボックスに名前を付けようとしています。アルゴリズムを考え出すのは非常に簡単でしたが、名前/チェックボックスのテキストを指定できません。私が思いついた最善の方法は、生成されたすべてのものに同様のチェックボックス テキストを付けることでした。それらに名前を付ける方法はありますか?

以下は私が思いついたコードです

int x = ((((DropDownList1.SelectedIndex+1)*(DropDownList1.SelectedIndex+1))-(DropDownList1.SelectedIndex+1))/2)-1;
    Label1.Text = x+"";
    for (int i = 0; i < x; i++)
    {
        CheckBox cb = new CheckBox();
        cb.Text = "1 & 2";
        PlaceHolder1.Controls.Add(cb);
        PlaceHolder1.Controls.Add(new LiteralControl("<br/>"));
    }

どんな助けでも大歓迎です。

乾杯、ジャフ

4

2 に答える 2

0

コントロールのIDプロパティを使用して名前を割り当てる必要があります。

このような:

for (int i = 0; i < x; i++)
{
    CheckBox cb = new CheckBox();

    cb.ID = "checkBox" + i;

    PlaceHolder1.Controls.Add(cb);

    PlaceHolder1.Controls.Add(new LiteralControl("<br/>"));
}

プロパティはText、すべてのコントロールで等しくすることができます。
コントロールに同じ名前 (ID) を使用することはできません。

于 2010-09-02T01:49:59.510 に答える
0

for ステートメントのインデックスを使用できます。

int x = ((((DropDownList1.SelectedIndex+1)*(DropDownList1.SelectedIndex+1))-(DropDownList1.SelectedIndex+1))/2)-1;
    Label1.Text = x+"";
    for (int i = 0; i < x; i++)
    {
        CheckBox cb = new CheckBox();
        cb.Text = String.Format("PrefixName{0}" , Convert.ToString(i+1));
        PlaceHolder1.Controls.Add(cb);
        PlaceHolder1.Controls.Add(new LiteralControl("<br/>"));
    }
于 2010-09-02T01:53:41.340 に答える