在回发htmlgeneric控件上,在asp.net中删除其子控件,为什么?

在回发htmlgeneric控件上,在asp.net中删除其子控件,为什么?,asp.net,Asp.net,我有一个htmlgeneric控件,在运行时我会在其中添加控件,但当我单击任何按钮时,添加的控件就会消失。需要在每次回帖中创建动态创建的控件。如果要维护和恢复他们的ViewState,还需要给他们一个ID 例如,这将在第一次加载页面时显示文本框,但在任何后续页面加载时,控件将丢失: protected void Page_Init(object sender, EventArgs e) { if (!IsPostBack) { TextBox newControl

我有一个htmlgeneric控件,在运行时我会在其中添加控件,但当我单击任何按钮时,添加的控件就会消失。

需要在每次回帖中创建动态创建的控件。如果要维护和恢复他们的ViewState,还需要给他们一个ID

例如,这将在第一次加载页面时显示
文本框
,但在任何后续页面加载时,控件将丢失:

protected void Page_Init(object sender, EventArgs e)
{
    if (!IsPostBack)
    {
        TextBox newControl = new TextBox()
        {
            ID = "newControl"
        };
        SomeControl.Controls.Add(newControl);
    }
}
但是,如果在每次回发时使用相同的Id创建控件,则该控件将使用其文本进行维护:

protected void Page_Init(object sender, EventArgs e)
{
    TextBox newControl = new TextBox()
    {
        ID = "newControl"
    };
    SomeControl.Controls.Add(newControl);
}

这是一篇关于如何处理的好文章。

Add最好在page_init中重新创建它们,以便它们像静态控件一样自动填充(前提是ID与您所说的匹配)