我是ASP.NET编程的新手。 我想在单击按钮时将控件添加到当前页面。
目前,这是被解雇的事件:
protected void Button_Click(object sender, EventArgs e) {
LiteralControl litctrl = new LiteralControl("<div> Testing " + DateTime.UtcNow.Millisecond +" </div>");
form.Controls.Add(litctrl);
}
这在第一次点击时工作正常,但如果我再次点击,我不会在表单中添加额外的div。创建了一个新div,但前一个div丢失了。
为什么会如此?如何在当前页面上添加控件?
答案 0 :(得分:3)
有关示例,请参阅http://chiragrdarji.wordpress.com/2009/05/20/maintain-viewstate-for-dynamic-controls-across-the-postback/。在ASP.NET Webforms中添加动态控件是理解回发和页面生命周期之间的一个棘手的舞蹈。抛出任何ViewState要求,需要更深入的理解。
根据您的要求,您需要在每次回发时重新创建任何动态添加的控件。你不是,它就消失了。
答案 1 :(得分:2)
这种技术通常被称为添加“动态”控件。
示例包括:
了解ASP.Net Page Lifecycle时,添加控件通常非常重要。
常见的陷阱被广泛涵盖,例如: