C# 动态添加控件在回发后消失

C# 动态添加控件在回发后消失,c#,asp.net,.net,postback,C#,Asp.net,.net,Postback,我有一个包含以下代码的aspx页面: <asp:Table ID="JsonContent" runat="server"> </asp:Table> 在Page\u Load的我的隐藏代码中,我将项目添加到表中 表由两行组成: 行数0是包含TextBox 行num 1是包含TextBox 此外,我还有一个按钮save,当用户单击该按钮时,我需要浏览所有表行,并将Text Prop处的数据写入文件 问题是,当我单击按钮Save时,事件页面\u load

我有一个包含以下代码的aspx页面:

 <asp:Table ID="JsonContent" runat="server">
     </asp:Table>

Page\u Load
的我的隐藏代码中,我将项目添加到表中

表由两行组成:

行数0是包含
TextBox

行num 1是包含
TextBox

此外,我还有一个按钮
save
,当用户单击该按钮时,我需要浏览所有表行,并将
Text Prop
处的数据写入文件

问题是,当我单击
按钮Save
时,事件页面\u load raise和所有
文本框
控件都不存在,因此我无法将编辑的数据写入文件

我读过关于这个问题的类似帖子,但没有找到解决方案


谢谢!

首先,您应该了解asp.net页面web周期:

我想说@TimSchmelter在评论中为您提供了完美的解决方案:

“您应该在每次回发时(重新)在Page_Init中创建所有动态添加的控件,因为所有对象在html发送到客户端时都会被释放。但是,即使您在那里重新创建它们,如果您指定与以前相同的ID,它们也会保留用户输入。”

这意味着您必须使用函数page_init(它类似于page_load,但不是自动生成的,您必须手动编写)

我也这样做过一次,我确信蒂姆的解决方案会奏效


只需确保已达到页面的初始化功能。

首先,您应该了解asp.net页面的web周期:

我想说@TimSchmelter在评论中为您提供了完美的解决方案:

“您应该在每次回发时(重新)在Page_Init中创建所有动态添加的控件,因为所有对象在html发送到客户端时都会被释放。但是,即使您在那里重新创建它们,如果您指定与以前相同的ID,它们也会保留用户输入。”

这意味着您必须使用函数page_init(它类似于page_load,但不是自动生成的,您必须手动编写)

我也这样做过一次,我确信蒂姆的解决方案会奏效


只需确保您的page_init()功能已达到。

您应该在每次回发中(重新)在
page_init
中创建所有动态添加的控件,因为html发送到客户端时,所有对象都会被释放。但是,即使您在那里重新创建它们,如果您指定与以前相同的ID,它们也会保留用户输入。您可以使用页面加载代码更新问题吗?@TimSchmelter我尝试您的解决方案,在创建具有相同ID的文本框后,如何将其再次添加到asp.NET页面?问题是所有控件都是空的,即我的面板包含动态文本框。你必须向我们展示更多代码,主要是html部分和页面加载,因为如果你在其他控件中有控件,那么它可能会更复杂。你应该(重新)在每次回发中,在
Page_Init
中创建所有动态添加的控件,因为当html发送到客户端时,所有对象都会被释放。但是,即使您在那里重新创建它们,如果您指定与以前相同的ID,它们也会保留用户输入。您可以使用页面加载代码更新问题吗?@TimSchmelter我尝试您的解决方案,在创建具有相同ID的文本框后,如何将其再次添加到asp.NET页面?问题是所有控件都为空,即我的面板包含动态文本框。你必须向我们展示更多的代码,主要是html部分和页面加载,因为如果你在其他控件中有控件,它可能会更复杂。你可以看看我的问题。我也吃同样的issue@KeshavTaurah等我有更多的时间,我会看一看的。你能看一下我的问题吗。我也吃同样的issue@KeshavTaurah等我有更多的时间再看一看。