Skip to main content
 首页 » 编程设计

c#之asp.net 在 webform 上自动生成文本框 ID

2024年02月23日29java哥

我在 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 
       { 
 
       } 
   } 
}