在postback htmlgenericcontrol中删除它在asp.net中的子控件,为什么?

时间:2011-02-09 10:29:39

标签: asp.net

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

1 个答案:

答案 0 :(得分:1)

需要在每个帖子上创建动态创建的控件。如果要维护和恢复其ViewState,还需要为其提供ID。

例如,这将在第一次加载页面时显示TextBox,但在任何子页面加载时,控件将丢失:

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);
}

这是一篇关于处理dynamic controls的好文章。