如果您打算在表单上只允许有限数量的文本框,您可以在 Page_Init 期间创建该数量的文本框并将它们的可见性设置为 false,这样它们就不会在浏览器中呈现。在按钮的单击事件中,您可以找到第一个不可见的文本框并将可见性更改为 true。像这样的东西
protected void Page_Init(object sender, EventArgs e)
{
for (int i = 0; i < 20; i++)
{
this.Form.Controls.Add(new TextBox() { Visible = false });
}
}
protected void addTextboxButton_Click(object sender, EventArgs e)
{
TextBox tb = this.Form.Controls.OfType<TextBox>().FirstOrDefault(box => box.Visible == false);
if (tb != null) tb.Visible = true;
}
使用这种方法,文本框在每次单击按钮时一个一个可见,并且回发值会保持不变。
显然,您需要在其中做更多的工作,例如定义一些文字控件来创建文本框的换行符和提示,以及在用户达到您设置的任何有限限制时显示一条消息。