C# 在asp.net中保留动态控件

C# 在asp.net中保留动态控件,c#,asp.net,C#,Asp.net,我有一个页面,上面有10个面板控件。每个面板都有大约10个文本框,我使用以下代码动态创建这些文本框 TextBox txt = new TextBox(); txt.ID = "txt_" + Month + "_" + Stage; txt.Text = Value; if (v == 0) Panel_0.Controls.Add(txt); else if (v == 1) Panel_1.Controls.Add(txt); 我在那些文本框中从数据库中检索到了一些值。我可以

我有一个页面,上面有10个面板控件。每个面板都有大约10个
文本框
,我使用以下代码动态创建这些文本框

TextBox txt = new TextBox();
txt.ID = "txt_" + Month + "_" + Stage;
txt.Text = Value;
if (v == 0)
   Panel_0.Controls.Add(txt);
else if (v == 1)
   Panel_1.Controls.Add(txt);
我在那些
文本框中从数据库中检索到了一些值。我可以更改这些值,我还有一个保存按钮。单击此按钮的事件时,我循环通过每个面板的
文本框
,以保存修改后的数据

protected void btnSave_Click(object sender, EventArgs e)
{
    foreach (TextBox txt in Panel_0.Controls.OfType<TextBox>())
    {

    }
}
protectedvoidbtnsave\u单击(对象发送方,事件参数e)
{
foreach(Panel_0.Controls.OfType()中的文本框txt)
{
}
}
但是,当我点击Save按钮时,我在for循环中找不到任何
TextBox
控件。 同样在回帖中,这些控件从我的页面中消失。
如何保存控件及其数据,以便在按钮单击事件中检索。回发后,动态控件将丢失。你必须在每次发帖后重新创建它们。您必须使用
查看状态

protected int NumberOfControls
{
    get{return (int)ViewState["NumControls"];}
    set{ViewState["NumControls"] = value;}
}


private void addSomeControl()
{
    TextBox tx = new TextBox();
    tx.ID = "ControlID_" + NumberOfControls.ToString();
    Page.Controls.Add(tx);
    this.NumberOfControls++;
}
请访问以下网址:


发回后,它们将丢失,您应该保留它们。@Vijay请将我的答案标记为已接受,如果它对您有帮助的话。