使用C#,我如何阅读动态创建的文本框的内容?

时间:2010-12-21 13:50:23

标签: c# asp.net textbox dynamic-data

HY,

我创建了一些带有标准内容的动态文本框。

当我按下一个按钮时,有谁知道如何阅读这些文本框的内容(假设用户修改了标准内容)?

非常感谢。

杰夫

更新

这就是我创建文本框的方式:

foreach (string name in listOfNames)
{
   TextBox tb = new TextBox();
   tb.Text = name;
   tb.BorderStyle = BorderStyle.None;
   tb.BorderWidth = 0;
   tb.Font.Name = "Arial";
   tb.Font.Size = 8;
}

4 个答案:

答案 0 :(得分:3)

具体取决于您使用的技术。然而,这个概念仍然非常相似,但对于ASP.NET来说,它会更有趣。

<强>的WinForms / WPF / Silverlight的

维护动态创建的文本框列表,按下按钮后,您可以浏览文本框列表并阅读Text属性以获取用户输入。

ASP.NET - 标记更新后,此部分似乎最符合您的要求。

对于ASP.NET,您需要在OnInit方法的覆盖中创建文本框,这应该在每次回发时发生。然后在Button.Click事件中,您可以从OnInit函数中创建的文本框中读取用户输入。您需要确保在每个帖子上创建的控件都使用相同的ID

答案 1 :(得分:2)

您需要确保每次回发都重新创建文本框

如果您不重新创建它们,您将无法访问其属性或事件。

创建动态控件的最佳位置是页面Init事件处理程序。

我建议您阅读ASP.NET page life cycle


更新(更新后的问题)

确保为文本框设置ID(以及另一个),以便稍后可以参考。

我无法看到您将这些控件添加到页面的位置。

答案 2 :(得分:0)

Request.Form是键值对的集合,表示从ASP.NET请求返回的所有数据。如果您访问它,您可以获得任何值,无论其控件是在ASPX代码中指定还是在代码隐藏文件中动态创建。

如果在页面生命周期的init部分重新创建它们,也可以自动将它们的值放回到它们中。如果这样做,当ASP.NET重新创建页面状态并应用表单中的值时,将设置它们的值。

答案 3 :(得分:0)

您应该像正常控件一样访问它们,您只需要获得对控件的引用。 请记住在每个回发上重新创建所有控件。

this是关于asp.net中动态控件的有用文章