我在 Visual Studio 上使用 C#。我想根据上一页的输入生成一个带有自动编号的 Textboxes 的 webform。执行此循环的最佳方法是什么?
例如:
输入为4
下一页应该生成ID为
的文本框- “名字1”
- “名字2”
- “名字3”
- “姓名4”
像这样:
<asp:TextBox ID="name1" runat="server"></asp:TextBox>
<asp:TextBox ID="name2" runat="server"></asp:TextBox>
<asp:TextBox ID="name3" runat="server"></asp:TextBox>
<asp:TextBox ID="name4" runat="server"></asp:TextBox>
我的问题的第 2 部分是,如果我想在单击 Button 时调用它们,我应该如何使用循环来获取这些 ID?
请您参考如下方法:
使用for循环和PlaceHolder控件创建动态TextBox控件
<asp:PlaceHolder ID="phDynamicTextBox" runat="server" />
int inputFromPreviousPost = 4;
for(int i = 1; i <= inputFromPreviousPost; i++)
{
TextBox t = new TextBox();
t.ID = "name" + i.ToString();
}
//on button click retrieve controls inside placeholder control
protected void Button_Click(object sender, EventArgs e)
{
foreach(Control c in phDynamicTextBox.Controls)
{
try
{
TextBox t = (TextBox)c;
// gets textbox ID property
Response.Write(t.ID);
}
catch
{
}
}
}
