C# 在循环中以编程方式指定HiddenField值

C# 在循环中以编程方式指定HiddenField值,c#,asp.net,loops,webforms,C#,Asp.net,Loops,Webforms,在default.aspx上,我有以下隐藏字段: <asp:HiddenField runat="server" ID="icon1" /> <asp:HiddenField runat="server" ID="icon2" /> <asp:HiddenField runat="server" ID="icon3" /> 我必须每次这样单独分配iconX.Value?我可以在一个循环中一次性完成所有操作吗(为了简洁起见,还可以删除所有其他操作) for(i

default.aspx
上,我有以下隐藏字段:

<asp:HiddenField runat="server" ID="icon1" />
<asp:HiddenField runat="server" ID="icon2" />
<asp:HiddenField runat="server" ID="icon3" />
我必须每次这样单独分配
iconX.Value
?我可以在一个循环中一次性完成所有操作吗(为了简洁起见,还可以删除所有其他操作)


for(inti=1;i您必须在HTML部分创建一个
asp:panel

然后,在c代码中,创建一个循环并创建您描述的元素

完全配置元素后,将其添加到面板中

.ASPX文件

<asp:Panel ID="panel_controls" runat="server">    </asp:Panel>
for (int i = 1; i <= 3; i++) {
    HiddenField myField = new HiddenField();
    myField.ID = "icon" + i;
    myField.Value = "Bonus" + i;
    panel_controls.Controls.Add(myField);
}

C#代码

<asp:Panel ID="panel_controls" runat="server">    </asp:Panel>
for (int i = 1; i <= 3; i++) {
    HiddenField myField = new HiddenField();
    myField.ID = "icon" + i;
    myField.Value = "Bonus" + i;
    panel_controls.Controls.Add(myField);
}
for(int i=1;i
循环最符合逻辑。可能吗

是。使用页面的方法按控件ID查找控件:

for (int i = 1; i <= 3; i++)
{
    HiddenField field = (HiddenField)this.FindControl("icon" + i);
    field.Value = "Bonus" + i.ToString();
}
for(int i=1;i