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