我在页面上放了一个链接,然后点击了
,我写了一些代码来添加一些控件 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);
我的问题是,当我点击此链接时,它会添加这些控件一次,但如果我再次点击它不会添加更多,接缝删除以前添加的控件并重新添加它们。
我想添加越来越多的每个链接点击。
答案 0 :(得分:5)
好的,这些添加的控件不会在回发之间的任何地方保留。因此,您应该在每次重新加载页面时添加它们。
考虑使用一些标志(例如存储在Session中)来指示必须添加其他控件。
答案 1 :(得分:2)
你的控件正在消失,因为它们没有存储在任何地方(页面在回发时会忘记它们)。请记住,在每次回发时,都必须重新创建页面。
有很多关于使用动态创建的控件的好文章。另外要完全理解问题所在,必须熟悉页面生命周期。
这是两篇真正帮助我的文章:
答案 2 :(得分:2)
您需要在回发时重新创建控件(具有相同ID!),您可以使用CreateChildControls方法执行此操作。
值得查看Page Life-Cycle of ASP.NET以了解可以修改内容的时间和地点。如果它要迟到,它将不会被添加到ViewState等,所以特别是在使用动态创建的控件时,值得理解。
答案 3 :(得分:0)
这个链接是如何构建的?
如果你的链接控件是一个html控件(客户端控件),你所经历的行为是正确的。