在运行时问题ASP.Net中添加控件

时间:2009-02-24 10:45:40

标签: c# asp.net javascript html

我在页面上放了一个链接,然后点击了

,我写了一些代码来添加一些控件
    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);

我的问题是,当我点击此链接时,它会添加这些控件一次,但如果我再次点击它不会添加更多,接缝删除以前添加的控件并重新添加它们。

我想添加越来越多的每个链接点击。

4 个答案:

答案 0 :(得分:5)

好的,这些添加的控件不会在回发之间的任何地方保留。因此,您应该在每次重新加载页面时添加它们。

考虑使用一些标志(例如存储在Session中)来指示必须添加其他控件。

答案 1 :(得分:2)

你的控件正在消失,因为它们没有存储在任何地方(页面在回发时会忘记它们)。请记住,在每次回发时,都必须重新创建页面。

有很多关于使用动态创建的控件的好文章。另外要完全理解问题所在,必须熟悉页面生命周期。

这是两篇真正帮助我的文章:

答案 2 :(得分:2)

您需要在回发时重新创建控件(具有相同ID!),您可以使用CreateChildControls方法执行此操作。

值得查看Page Life-Cycle of ASP.NET以了解可以修改内容的时间和地点。如果它要迟到,它将不会被添加到ViewState等,所以特别是在使用动态创建的控件时,值得理解。

答案 3 :(得分:0)

这个链接是如何构建的?

如果你的链接控件是一个html控件(客户端控件),你所经历的行为是正确的。