Как динамически назначать настраиваемые соглашения о тексте и именах динамически генерируемым ярлыкам / флажкам?

Я пытаюсь дать имена моим динамически генерируемым флажкам через цикл 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/>"));
    }

Любая помощь с благодарностью.

Ура, джаф

2 ответа

Вы должны назначить имя с помощью элемента управления 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 свойство может быть равным в каждом элементе управления.
Вы не можете иметь одинаковые имена (идентификаторы) для элементов управления.

Вы можете использовать индекс для заявления:

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/>"));
    }
Другие вопросы по тегам