我在页面上放了一个链接,在点击后我写了一些代码来添加一些控件,
DropDownList newDropdownlist = new DropDownList();
panel.Controls.Add(newDropdownlist);
CheckBox newChkbox = new CheckBox();
panel.Controls.Add(newChkbox);
TextBox txt = new TextBox();
txt.ID = "txtPhoneValue";
panel.Controls.Add(txt);
我的问题是,当我点击这个链接时,它会添加这些控件一次,但如果我再次单击,它不会添加更多,看起来它删除了以前添加的控件,并再次添加它们。
我想添加越来越多的每个链接点击。
发布于 2009-02-24 03:04:51
好的,这些添加的控件不会在回发之间的任何地方持久存在。因此,您应该在每次页面重新加载时添加它们。
考虑使用一些标志(例如,存储在会话中)来指示必须添加额外的控件。
发布于 2009-02-24 03:12:11
您的控件正在消失,因为它们没有存储在任何地方(页面在回发时会忘记它们)。请记住,在每次回发时,都必须重新创建页面。
有相当多关于使用动态创建的控件的文章。此外,为了完全理解问题所在,有必要熟悉页面的生命周期。
这里有两篇文章对我很有帮助:
发布于 2009-02-24 03:25:10
您需要在回发时重新创建控件(具有相同in的!),您可以在CreateChildControls方法中执行此操作。
查看Page Life-Cycle of ASP.NET以了解何时何地可以修改内容是值得的。如果为时已晚,它将不会被添加到ViewState等,所以特别是在使用动态创建的控件时,这是值得理解的。
https://stackoverflow.com/questions/581286
复制相似问题