我动态地添加了控件,但是;easc回发事件我的控件消失了。我再也看不到我的控件了。
那么我该如何添加控件呢?
发布于 2010-01-11 23:01:03
将控件添加到页面的Init事件中,它们将在回发时保留在viewstate中。确保他们有一个唯一的ID。
查看此链接...
ASP.NET Add Control on postback
一个非常琐碎的例子..
public partial class MyPage : Page
{
TextBox tb;
protected override void OnInit(EventArgs e)
{
base.OnInit(e);
tb = new TextBox();
tb.ID = "testtb";
Page.Form.Controls.Add(tb);
}
protected override void OnLoad(EventArgs e)
{
base.OnLoad(e);
//tb.Text will have whatever text the user entered upon postback
}
}发布于 2010-01-11 22:32:10
因为您必须在每次回发时重新创建控件,所以see this article
发布于 2010-01-11 22:36:54
加载控件后,应始终在UserControl的ID属性中为其分配唯一的ID。而且您应该始终在回发时重新创建UserControl。
要保留回发数据(即文本框),必须在调用base.LoadViewState之后在处理回发数据之前在重写的LoadViewState方法中加载UserControl。
https://stackoverflow.com/questions/2042270
复制相似问题