回发后动态添加控件消失

时间:2016-11-30 15:12:30

标签: c# asp.net .net postback

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

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

在我Page_Load后面的代码中,我将项目添加到表格。

表格包含两行:

行号0是包含TextBox

的单元格

第num行是包含TextBox

的单元格

此外我还有一个按钮save,当用户点击按钮时我需要遍历所有表格行并将数据写在Text Prop到文件。

问题在于,当我单击Button Save事件page_load raise并且所有text box控件都不存在时,我无法将编辑后的数据写入文件。

我读过有关此问题的类似帖子,但无法获得解决方案。

感谢!

1 个答案:

答案 0 :(得分:0)

首先,您应该了解asp.net页面web周期:https://msdn.microsoft.com/en-us/library/ms178472.aspx

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

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

之前相同的ID

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

我也是这样做过的,我认为蒂姆的解决方案会起作用。

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