如何在ASP.NET中动态添加文本框?

时间:2009-04-10 15:26:46

标签: asp.net asp.net-3.5

我的asp.net页面有以下要求:

  1. 用户可以通过点击“添加新类别”链接

  2. 在页面A上动态添加文本框
  3. 他点击了第A页上的提交按钮,并被重定向到了第B页。

  4. 当他点击此页面上的第A页链接时,应该保留他添加的文本框。

  5. 有人可以帮我解决这个问题吗?

    感谢您的帮助!

5 个答案:

答案 0 :(得分:3)

按钮单击方法写入。

TextBox tb = new TextBox();

Parent.Controls.Add( tb );

Parent是您要将文本框添加到的控件,例如面板。

您还可以查看this resource

希望它有所帮助。

答案 1 :(得分:3)

动态添加用户控件很简单。但在这种情况下,我认为您不需要这样做,而应该考虑创建一个带有文本框的转发器,当用户单击Add Category时,将一个项添加到转发器数据源。

通过这种方式,您可以同时处理控件创建和状态持久性。

答案 2 :(得分:1)

动态创建文本框:

假设您有这样的页面enter image description here

当您在文本框中输入“1”并单击“添加”按钮时,输出将类似于显示一个文本框 下面.. 我这样设计的, enter image description here

我有一个用于显示动态文本框的文本框和占位符。 双击添加按钮...在btnadd_click中,你必须编写以下代码

protected void btnadd_Click(object sender,EventArgs e)    {

    int i;
       for (i = 0; i < Convert.ToInt32(txtno.Text); i++)

    {

        TextBox txtbox = new TextBox();
        phtxt.Controls.Add(txtbox);

        phtxt.Controls.Add(new LiteralControl("<br>"));

    }

  }

调试它......输出是, enter image description here

答案 3 :(得分:0)

正如其他人所说,动态添加文本框非常简单,只需创建文本框并将其添加到控件集合中,无论您需要它出现在哪里。然后,您需要存储此用户获取此附加文本框的信息。假设这是长期的,您需要将此信息存储在后端存储中。无论何时构建页面,您都需要首先阅读商店信息,以查看要创建的文本框。

我建议按如下方式进行。在Onload事件中,如果您之前没有这样做,请从数据库加载动态信息。向页面添加任何必要的控件并将此信息存储在viewstate中。在任何后续回发中,从viewstate中读取信息以添加其他控件。这将使您不必在每次回发时不断从数据库中阅读。

答案 4 :(得分:0)

处理动态用户控件可能会让人痛苦。

作为经验法则我遵循,每当你创建一个动态用户控件时,你必须设置它的ID,以便ASP.net可以在回发后重新分配它,并在发回后保留控件值你应该重新加载你的用户控制Page_Init事件。

希望这会有所帮助。