如何动态地为动态生成的标签/复选框提供自定义文本/命名约定?

时间:2010-09-02 01:46:55

标签: c# asp.net visual-studio-2008 naming-conventions dynamically-generated

我试图通过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/>"));
    }

非常感谢任何帮助。

干杯, JAF

2 个答案:

答案 0 :(得分: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)不能相同。

答案 1 :(得分: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/>"));
    }