C# 在asp.net中保留动态控件
我有一个页面,上面有10个面板控件。每个面板都有大约10个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); 我在那些文本框中从数据库中检索到了一些值。我可以
文本框
,我使用以下代码动态创建这些文本框
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请将我的答案标记为已接受,如果它对您有帮助的话。