在asp.net中,每次回发都会自动生成ASPX文件中的控件。您创建的控件不在ASPX代码中,因此框架不会为您创建它们。第一次执行Button1_Click方法时,您会向页面添加一个额外的控件。第二次执行Button1_Click方法时,您又回到了另一个帖子上,并且第一个多余的按钮已被忘记。因此,回发的结果是您再次获得一个额外的按钮。
每次单击按钮都会创建一个额外的控件(尽管由于重新创建了控件,所以每次按下按钮时时间戳都会更新)
protected void Button1_Click(object sender, EventArgs e){ int count = 0; if (ViewState["ButtonCount"] != null) { count = (int)ViewState["ButtonCount"]; } count++; ViewState["ButtonCount"] = count; for (int i = 0; i < count; i++) { Literal literal = new Literal(); literal.Text = DateTime.Now.ToString(); literal.ID = DateTime.Now.Ticks.ToString(); UpdatePanel1.ContentTemplateContainer.Controls.Add(literal); PlaceHolder1.Controls.Add(literal); } }
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)