在回发时无法在datagrid中找到动态控件

时间:2008-10-14 13:53:32

标签: asp.net datagrid postback

使用.NET 1.1,我有一个DataGrid,每行包含三列。

第一行的标签带有一些文字。

第三行将始终有两个单选按钮和两个复选框,它们位于页面的HTML端。

第二行将动态生成控件(现在只是文本框),每行可以有1个或更多。这些将用于用户输入。

页面上有一个按钮,当用户单击按钮时,我需要使用用户输入中的新值更新DataGrid的源(我的DataTable)。

问题是DataGrid似乎正在丢失PostBack上动态生成的控件。我可以遍历DataGrid中的每个Item,我可以访问单选按钮和复选框,但文本框不在那里。

有什么想法吗?

2 个答案:

答案 0 :(得分:3)

请记住:每次发生回发时,您都在使用页面类的新实例。在上一次回发期间添加到页面的动态控件在该回发的页面与该页面实例的其余部分一起呈现给浏览器时立即进入垃圾收集器。您需要在每次回发时重新创建动态控件。

答案 1 :(得分:0)

你必须重新生成控件。您应该能够从http请求对象

获取它们的值