我在 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
{
}
}
}
关于c# - asp.net 在 webform 上自动生成文本框 ID,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7553745/