我的asp.net页面有以下要求:
用户可以通过点击“添加新类别”链接
他点击了第A页上的提交按钮,并被重定向到了第B页。
当他点击此页面上的第A页链接时,应该保留他添加的文本框。
有人可以帮我解决这个问题吗?
感谢您的帮助!
答案 0 :(得分:3)
按钮单击方法写入。
TextBox tb = new TextBox();
Parent.Controls.Add( tb );
Parent是您要将文本框添加到的控件,例如面板。
您还可以查看this resource。
希望它有所帮助。
答案 1 :(得分:3)
动态添加用户控件很简单。但在这种情况下,我认为您不需要这样做,而应该考虑创建一个带有文本框的转发器,当用户单击Add Category时,将一个项添加到转发器数据源。
通过这种方式,您可以同时处理控件创建和状态持久性。
答案 2 :(得分:1)
动态创建文本框:
假设您有这样的页面
当您在文本框中输入“1”并单击“添加”按钮时,输出将类似于显示一个文本框 下面.. 我这样设计的,
我有一个用于显示动态文本框的文本框和占位符。 双击添加按钮...在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>"));
}
}
调试它......输出是,
答案 3 :(得分:0)
正如其他人所说,动态添加文本框非常简单,只需创建文本框并将其添加到控件集合中,无论您需要它出现在哪里。然后,您需要存储此用户获取此附加文本框的信息。假设这是长期的,您需要将此信息存储在后端存储中。无论何时构建页面,您都需要首先阅读商店信息,以查看要创建的文本框。
我建议按如下方式进行。在Onload事件中,如果您之前没有这样做,请从数据库加载动态信息。向页面添加任何必要的控件并将此信息存储在viewstate中。在任何后续回发中,从viewstate中读取信息以添加其他控件。这将使您不必在每次回发时不断从数据库中阅读。
答案 4 :(得分:0)
处理动态用户控件可能会让人痛苦。
作为经验法则我遵循,每当你创建一个动态用户控件时,你必须设置它的ID,以便ASP.net可以在回发后重新分配它,并在发回后保留控件值你应该重新加载你的用户控制Page_Init事件。
希望这会有所帮助。