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

标签 c# asp.net

我在 Visual Studio 上使用 C#。我想根据上一页的输入生成一个带有自动编号的 Textboxeswebform。执行此循环的最佳方法是什么?

例如:

输入为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/

相关文章:

c# - 为什么我在页面加载时在我的 gridview 中收到旧数据?

c# - 动态参数导致编译器认为方法返回是动态的

c# - 删除大文本文件中的所有重复项

c# - 如何在单个 LINQ 中获得两个不同的聚合?

c# - ASP 和 C# 之间的语义差异?

c# - 一直出现 WebResource.axd?d=.... 错误

c# - asp.net Core 2.0中如何使用ResponseCache

c# - 在 ZipFile 中添加大量文件时出现 OutOfMemoryException

asp.net - session 超时在 ASP .Net 中不起作用

c# - 如何从路线获取数组?